32#include "../System/cl_platform.h"
107 size_t send(
const void *data,
size_t len,
bool send_all =
true);
116 size_t receive(
void *data,
size_t len,
bool receive_all =
true);
123 size_t peek(
void *data,
size_t len);
139 size_t read(
void *data,
size_t len,
bool receive_all =
true);
148 size_t write(
const void *data,
size_t len,
bool send_all =
true);
288 std::string
read_string_text(
const char *skip_initial_chars,
const char *read_until_chars,
bool allow_eof =
true);
294 std::shared_ptr<IODevice_Impl>
impl;
I/O device provider interface.
Definition iodevice_provider.h:40
void write_string_nul(const std::string &str)
Writes a nul terminated string to the output source.
bool seek(int position, SeekMode mode=SeekMode::set)
Seek in data stream.
void write_uint16(uint16_t data)
Writes an unsigned 16 bit integer to output source.
size_t send(const void *data, size_t len, bool send_all=true)
Send data to device.
uint64_t read_uint64()
Reads an unsigned 64 bit integer from input source.
std::string read_string_text(const char *skip_initial_chars, const char *read_until_chars, bool allow_eof=true)
Reads a string from the input source where the source is a text file.
void write_string_text(const std::string &str)
Writes a text string to the output source.
IODeviceProvider * get_provider()
Returns the provider for this object.
void write_uint32(uint32_t data)
Writes an unsigned 32 bit integer to output source.
void set_system_mode()
Changes input data endianess to the local systems mode.
IODevice()
Constructs a null instance.
void write_uint8(uint8_t data)
Writes an unsigned 8 bit integer to output source.
SeekMode
Seeking modes.
Definition iodevice.h:54
@ end
Set to a specific value from the end (use negative position)
Definition iodevice.h:62
@ cur
Set relative to the current position.
Definition iodevice.h:59
@ set
Set to a specific value from the start.
Definition iodevice.h:56
uint16_t read_uint16()
Reads an unsigned 16 bit integer from input source.
size_t get_position() const
Returns the position in the data stream.
size_t peek(void *data, size_t len)
Peek data from device (data is left in the buffer).
std::shared_ptr< IODevice_Impl > impl
Definition iodevice.h:294
void write_int16(int16_t data)
Writes a signed 16 bit integer to output source.
size_t write(const void *data, size_t len, bool send_all=true)
Alias for send(data, len, send_all)
void write_int8(int8_t data)
Writes a signed 8 bit integer to output source.
void throw_if_null() const
Throw an exception if this object is invalid.
IODevice duplicate()
Create a new IODevice referencing the same resource.
int16_t read_int16()
Reads a signed 16 bit integer from input source.
void write_string_a(const std::string &str)
Writes a string to the output source.
void write_float(float data)
Writes a float to output source.
void write_int32(int32_t data)
Writes a signed 32 bit integer to output source.
int32_t read_int32()
Reads a signed 32 bit integer from input source.
size_t receive(void *data, size_t len, bool receive_all=true)
Receive data from device.
std::string read_string_nul()
Reads a nul terminated string from the input source.
void set_big_endian_mode()
Changes input data endianess to big endian mode. (Default is little endian)
IODevice(IODeviceProvider *provider)
Constructs a IODevice.
bool is_null() const
Returns true if this object is invalid.
Definition iodevice.h:76
uint32_t read_uint32()
Reads an unsigned 32 bit integer from input source.
size_t read(void *data, size_t len, bool receive_all=true)
Alias for receive(data, len, receive_all)
size_t get_size() const
Returns the size of data stream.
uint8_t read_uint8()
Reads an unsigned 8 bit integer from input source.
const IODeviceProvider * get_provider() const
Returns the provider for this object.
float read_float()
Reads a float from input source.
int8_t read_int8()
Reads a signed 8 bit integer from input source.
std::string read_string_a()
Reads a string from the input source.
void write_int64(int64_t data)
Writes a signed 64 bit integer to output source.
void set_little_endian_mode()
Changes input data endianess to little endian mode. This is the default setting.
void write_uint64(uint64_t data)
Writes an unsigned 64 bit integer to output source.
bool is_little_endian() const
Returns true if the input source is in little endian mode.
int64_t read_int64()
Reads a signed 64 bit integer from input source.