libebml_ng
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ebml::ioBase Class Referenceabstract

Base class for file-like IO operations. More...

#include <io.h>

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

Public Member Functions

 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)
 
virtual bool seekable ()=0
 
off_t tell ()
 
virtual size_t read (char *, off_t, size_t)=0
 
virtual size_t write (const char *, off_t, size_t)=0
 
void close ()
 
bool closed () const
 
virtual void truncate ()=0
 
virtual void truncate (off_t)=0
 
virtual struct stat stat ()=0
 
std::unique_lock< std::recursive_mutex > acquireLock ()
 

Protected Member Functions

virtual size_t _read (char *, size_t)=0
 
virtual size_t _write (const char *, size_t)=0
 
virtual off_t _seek (off_t, int)=0
 
virtual off_t _tell ()=0
 
virtual void _close ()=0
 
 ioBase (const ioBase &)
 
ioBaseoperator= (const ioBase &)
 

Protected Attributes

off_t _pos
 
bool _closed = 0
 
bool _close_on_dealloc = 0
 

Detailed Description

Base class for file-like IO operations.

Provides a common interface for reading, writing, seeking, and other file operations. Derived classes must implement the low-level functions.

See also
ebml::io<T>

Constructor & Destructor Documentation

◆ ioBase() [1/2]

ebml::ioBase::ioBase ( )
inline

◆ ~ioBase()

ebml::ioBase::~ioBase ( )
virtual

◆ ioBase() [2/2]

ebml::ioBase::ioBase ( const ioBase )
protected

Member Function Documentation

◆ _close()

virtual void ebml::ioBase::_close ( )
protectedpure virtual

◆ _read()

virtual size_t ebml::ioBase::_read ( char *  ,
size_t   
)
protectedpure virtual

◆ _seek()

virtual off_t ebml::ioBase::_seek ( off_t  ,
int   
)
protectedpure virtual

◆ _tell()

virtual off_t ebml::ioBase::_tell ( )
protectedpure virtual

◆ _write()

virtual size_t ebml::ioBase::_write ( const char *  ,
size_t   
)
protectedpure virtual

◆ acquireLock()

std::unique_lock<std::recursive_mutex> ebml::ioBase::acquireLock ( )
inline

◆ close()

void ebml::ioBase::close ( )

◆ closed()

bool ebml::ioBase::closed ( ) const

◆ operator=()

ioBase& ebml::ioBase::operator= ( const ioBase )
protected

◆ read() [1/2]

size_t ebml::ioBase::read ( char *  dest,
size_t  size 
)

◆ read() [2/2]

virtual size_t ebml::ioBase::read ( char *  ,
off_t  ,
size_t   
)
pure virtual

◆ seek()

off_t ebml::ioBase::seek ( off_t  pos,
int  whence = SEEK_SET 
)

◆ seekable()

virtual bool ebml::ioBase::seekable ( )
pure virtual

◆ stat()

virtual struct stat ebml::ioBase::stat ( )
pure virtual

◆ tell()

off_t ebml::ioBase::tell ( )

◆ truncate() [1/2]

virtual void ebml::ioBase::truncate ( )
pure virtual

◆ truncate() [2/2]

virtual void ebml::ioBase::truncate ( off_t  )
pure virtual

◆ write() [1/2]

size_t ebml::ioBase::write ( const char *  src,
size_t  size 
)

◆ write() [2/2]

virtual size_t ebml::ioBase::write ( const char *  ,
off_t  ,
size_t   
)
pure virtual

Member Data Documentation

◆ _close_on_dealloc

bool ebml::ioBase::_close_on_dealloc = 0
protected

◆ _closed

bool ebml::ioBase::_closed = 0
protected

◆ _pos

off_t ebml::ioBase::_pos
protected

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