31 #include "../System/exception.h"
42 virtual long long size()
const = 0;
50 void read(
void *data,
int size) {
int bytes =
try_read(data, size);
if (bytes != size)
throw Exception(
"Could not read all bytes"); }
51 virtual void write(
const void *data,
int size) = 0;
82 bool swap_bytes =
false;
int16_t read_int16()
Definition: iodevice.h:61
virtual void close()
Definition: iodevice.h:53
void write_double(double v)
Definition: iodevice.h:76
T read_type()
Definition: iodevice.h:78
Definition: iodevice.h:37
static uint8_t swap(uint8_t val)
Definition: endian.h:103
virtual long long seek_from_end(long long offset)=0
float read_float()
Definition: iodevice.h:64
void write_type(T v)
Definition: iodevice.h:79
long long position() const
Definition: iodevice.h:43
uint16_t read_uint16()
Definition: iodevice.h:60
double read_double()
Definition: iodevice.h:65
void write_float(float v)
Definition: iodevice.h:75
virtual long long size() const =0
virtual long long seek_from_current(long long offset)=0
std::shared_ptr< IODevice > IODevicePtr
Definition: iodevice.h:85
void write_uint32(uint32_t v)
Definition: iodevice.h:71
void write_int32(int32_t v)
Definition: iodevice.h:72
void write_int16(int16_t v)
Definition: iodevice.h:70
void write_int64(int64_t v)
Definition: iodevice.h:74
void write_uint8(uint8_t v)
Definition: iodevice.h:67
void write_int8(int8_t v)
Definition: iodevice.h:68
Top-level exception class.
Definition: exception.h:38
void write_uint16(uint16_t v)
Definition: iodevice.h:69
uint8_t read_uint8()
Definition: iodevice.h:58
int32_t read_int32()
Definition: iodevice.h:63
void set_big_endian_mode(bool value=true)
Definition: iodevice.h:56
uint32_t read_uint32()
Definition: iodevice.h:62
virtual ~IODevice()
Definition: iodevice.h:40
bool is_big_endian_mode() const
Definition: iodevice.h:55
virtual void write(const void *data, int size)=0
void read(void *data, int size)
Definition: iodevice.h:50
virtual int try_read(void *data, int size)=0
virtual long long seek(long long position)=0
int8_t read_int8()
Definition: iodevice.h:59
void write_uint64(uint64_t v)
Definition: iodevice.h:73
Definition: Application/application.h:35