libebml_ng
Public Member Functions | Static Public Member Functions | List of all members
ebml::io< T > Class Template Reference

Template class that implements the ioBase interface. More...

#include <io.h>

Inheritance diagram for ebml::io< T >:
ebml::ioBase

Public Member Functions

 io (const T &)
 
std::ios_base::openmode mode () const
 
bool seekable ()
 
size_t read (char *, off_t, size_t)
 
size_t write (const char *, off_t, size_t)
 
void truncate ()
 
void truncate (off_t)
 
struct stat stat ()
 
void close ()
 
template<>
bool seekable ()
 
template<>
size_t read (char *, off_t, size_t)
 
template<>
size_t write (const char *, off_t, size_t)
 
template<>
struct stat stat ()
 
template<>
bool seekable ()
 
template<>
struct stat stat ()
 
template<>
bool seekable ()
 
template<>
size_t read (char *dest, off_t offset, size_t size)
 
template<>
size_t write (const char *src, off_t offset, size_t size)
 
template<>
void truncate ()
 
template<>
void truncate (off_t pos)
 
template<>
struct stat stat ()
 
template<>
bool seekable ()
 
template<>
size_t read (char *, off_t, size_t)
 
template<>
size_t write (const char *, off_t, size_t)
 
template<>
struct stat stat ()
 
template<>
bool seekable ()
 
template<>
size_t read (char *, off_t, size_t)
 
template<>
size_t write (const char *, off_t, size_t)
 
template<>
struct stat stat ()
 
template<>
void truncate ()
 
template<>
void truncate (off_t)
 
template<>
bool seekable ()
 
template<>
struct stat stat ()
 
template<>
void truncate ()
 
template<>
void truncate (off_t length)
 
template<>
bool seekable ()
 
template<>
struct stat stat ()
 
template<>
void truncate ()
 
template<>
void truncate (off_t)
 
template<>
bool seekable ()
 
template<>
void truncate ()
 
template<>
void truncate (off_t pos)
 
template<>
struct stat stat ()
 
template<>
bool seekable ()
 
template<>
struct stat stat ()
 
template<>
void truncate ()
 
template<>
void truncate (off_t)
 
- Public Member Functions inherited from ebml::ioBase
 ioBase ()
 
virtual ~ioBase ()
 
size_t read (char *, size_t)
 
size_t write (const char *, size_t)
 
off_t seek (off_t, int whence=SEEK_SET)
 
off_t tell ()
 
void close ()
 
bool closed () const
 
std::unique_lock< std::recursive_mutex > acquireLock ()
 

Static Public Member Functions

static ioBase_sp open (const std::string &, const std::ios_base::openmode &)
 Open a file and instantiate an io object. More...
 
static ioBase_sp wrap (const T &)
 Wrap an already opened file into an io object. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ebml::ioBase
 ioBase (const ioBase &)
 
ioBaseoperator= (const ioBase &)
 
- Protected Attributes inherited from ebml::ioBase
off_t _pos
 
bool _closed = 0
 
bool _close_on_dealloc = 0
 

Detailed Description

template<typename T>
class ebml::io< T >

Template class that implements the ioBase interface.

Provides a concrete implementation for different types of IO (e.g., FILE*, file descriptor, etc.) via template specialization.

Template Parameters
TThe underlying file type.

Constructor & Destructor Documentation

◆ io()

template<typename T >
ebml::io< T >::io ( const T &  )

Member Function Documentation

◆ close()

template<typename T >
void ebml::io< T >::close ( )

◆ mode()

template<typename T >
std::ios_base::openmode ebml::io< T >::mode ( ) const

◆ open()

template<typename T >
static ioBase_sp ebml::io< T >::open ( const std::string &  ,
const std::ios_base::openmode &   
)
static

Open a file and instantiate an io object.

Parameters
filenameName of the file.
modeOpen mode in the style of fstream.
Returns
ioBase_sp Shared pointer to the newly created io object.

◆ read() [1/5]

template<>
size_t ebml::io< int >::read ( char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ read() [2/5]

template<>
size_t ebml::io< int >::read ( char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ read() [3/5]

template<>
size_t ebml::io< int >::read ( char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ read() [4/5]

template<typename T >
size_t ebml::io< T >::read ( char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ read() [5/5]

template<>
size_t ebml::io< int >::read ( char *  dest,
off_t  offset,
size_t  size 
)
virtual

Implements ebml::ioBase.

◆ seekable() [1/10]

template<>
bool ebml::io< int >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [2/10]

template<>
bool ebml::io< int >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [3/10]

template<>
bool ebml::io< FILE * >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [4/10]

template<>
bool ebml::io< FILE * >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [5/10]

template<>
bool ebml::io< std::fstream * >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [6/10]

template<>
bool ebml::io< std::fstream * >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [7/10]

template<>
bool ebml::io< int >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [8/10]

template<>
bool ebml::io< FILE * >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [9/10]

template<>
bool ebml::io< int >::seekable ( )
virtual

Implements ebml::ioBase.

◆ seekable() [10/10]

template<typename T >
bool ebml::io< T >::seekable ( )
virtual

Implements ebml::ioBase.

◆ stat() [1/10]

template<>
struct stat ebml::io< int >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [2/10]

template<>
struct stat ebml::io< int >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [3/10]

template<>
struct stat ebml::io< FILE * >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [4/10]

template<>
struct stat ebml::io< FILE * >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [5/10]

template<>
struct stat ebml::io< std::fstream * >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [6/10]

template<>
struct stat ebml::io< std::fstream * >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [7/10]

template<>
struct stat ebml::io< int >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [8/10]

template<typename T >
struct stat ebml::io< T >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [9/10]

template<>
struct stat ebml::io< FILE * >::stat ( )
virtual

Implements ebml::ioBase.

◆ stat() [10/10]

template<>
struct stat ebml::io< int >::stat ( )
virtual

Implements ebml::ioBase.

◆ truncate() [1/14]

template<>
void ebml::io< FILE * >::truncate ( )
virtual

Implements ebml::ioBase.

◆ truncate() [2/14]

template<>
void ebml::io< std::fstream * >::truncate ( )
virtual

Implements ebml::ioBase.

◆ truncate() [3/14]

template<>
void ebml::io< FILE * >::truncate ( off_t  )
virtual

Implements ebml::ioBase.

◆ truncate() [4/14]

template<>
void ebml::io< std::fstream * >::truncate ( off_t  )
virtual

Implements ebml::ioBase.

◆ truncate() [5/14]

template<>
void ebml::io< std::fstream * >::truncate ( )
virtual

Implements ebml::ioBase.

◆ truncate() [6/14]

template<>
void ebml::io< std::fstream * >::truncate ( off_t  length)
virtual

Implements ebml::ioBase.

◆ truncate() [7/14]

template<>
void ebml::io< int >::truncate ( )
virtual

Implements ebml::ioBase.

◆ truncate() [8/14]

template<>
void ebml::io< int >::truncate ( off_t  )
virtual

Implements ebml::ioBase.

◆ truncate() [9/14]

template<typename T >
void ebml::io< T >::truncate ( )
virtual

Implements ebml::ioBase.

◆ truncate() [10/14]

template<typename T >
void ebml::io< T >::truncate ( off_t  )
virtual

Implements ebml::ioBase.

◆ truncate() [11/14]

template<>
void ebml::io< FILE * >::truncate ( )
virtual

Implements ebml::ioBase.

◆ truncate() [12/14]

template<>
void ebml::io< FILE * >::truncate ( off_t  pos)
virtual

Implements ebml::ioBase.

◆ truncate() [13/14]

template<>
void ebml::io< int >::truncate ( )
virtual

Implements ebml::ioBase.

◆ truncate() [14/14]

template<>
void ebml::io< int >::truncate ( off_t  pos)
virtual

Implements ebml::ioBase.

◆ wrap()

template<typename T >
static ioBase_sp ebml::io< T >::wrap ( const T &  )
static

Wrap an already opened file into an io object.

Parameters
fileThe underlying file resource.
Returns
ioBase_sp Shared pointer to the io object.

◆ write() [1/5]

template<>
size_t ebml::io< int >::write ( const char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ write() [2/5]

template<>
size_t ebml::io< int >::write ( const char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ write() [3/5]

template<>
size_t ebml::io< int >::write ( const char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ write() [4/5]

template<typename T >
size_t ebml::io< T >::write ( const char *  ,
off_t  ,
size_t   
)
virtual

Implements ebml::ioBase.

◆ write() [5/5]

template<>
size_t ebml::io< int >::write ( const char *  src,
off_t  offset,
size_t  size 
)
virtual

Implements ebml::ioBase.


The documentation for this class was generated from the following file: