27 size_t read(
char*,
size_t);
28 size_t write(
const char*,
size_t);
29 off_t
seek(off_t,
int whence=SEEK_SET);
34 virtual size_t read(
char*, off_t,
size_t) = 0;
35 virtual size_t write(
const char*, off_t,
size_t) = 0;
49 return std::unique_lock<std::recursive_mutex>(this->_mutex);
58 virtual size_t _read(
char*,
size_t) = 0;
59 virtual size_t _write(
const char*,
size_t) = 0;
60 virtual off_t
_seek(off_t,
int) = 0;
61 virtual off_t
_tell() = 0;
68 std::recursive_mutex _mutex;
92 static ioBase_sp open(
const std::string&,
const std::ios_base::openmode&);
102 std::ios_base::openmode
mode()
const;
109 size_t read(
char*, off_t,
size_t);
110 size_t write(
const char*, off_t,
size_t);
118 static T _open(
const std::string&,
const std::ios_base::openmode&);
119 size_t _read(
char*,
size_t);
120 size_t _write(
const char*,
size_t);
121 off_t _seek(off_t,
int);
124 std::ios_base::openmode _mode;
bool _close_on_dealloc
Definition: io.h:54
virtual ~ioBase()
Definition: io.cpp:50
virtual off_t _seek(off_t, int)=0
virtual void truncate()=0
size_t read(char *, size_t)
Definition: io.cpp:16
virtual bool seekable()=0
off_t tell()
Definition: io.cpp:30
Template class that implements the ioBase interface.
Definition: io.h:81
static ioBase_sp wrap(const T &)
Wrap an already opened file into an io object.
std::ios_base::openmode mode() const
off_t _pos
Definition: io.h:52
virtual struct stat stat()=0
Definition: basictypes.h:40
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
void close()
Definition: io.cpp:42
size_t read(char *, off_t, size_t)
bool closed() const
Definition: io.cpp:38
std::unique_lock< std::recursive_mutex > acquireLock()
Definition: io.h:48
ioBase()
Definition: io.h:24
virtual size_t _write(const char *, size_t)=0
static ioBase_sp open(const std::string &, const std::ios_base::openmode &)
Open a file and instantiate an io object.
bool _closed
Definition: io.h:53
virtual size_t _read(char *, size_t)=0
size_t write(const char *, off_t, size_t)
ioBase & operator=(const ioBase &)
Base class for file-like IO operations.
Definition: io.h:22
size_t write(const char *, size_t)
Definition: io.cpp:23
off_t seek(off_t, int whence=SEEK_SET)
Definition: io.cpp:9