dynamic_buffer.h v0.2.2
Reference-counted byte buffer library for efficient I/O operations
|
Functions for reading buffers with primitive types and cursor. More...
Typedefs | |
typedef struct db_reader_internal * | db_reader |
Opaque reader handle for parsing buffers. | |
Functions | |
DB_DEF db_reader | db_reader_new (db_buffer buf) |
Create a new buffer reader. | |
DB_DEF db_reader | db_reader_retain (db_reader reader) |
Increase reader reference count (share ownership) | |
DB_DEF void | db_reader_release (db_reader *reader_ptr) |
Decrease reader reference count and potentially free reader. | |
DB_DEF void | db_reader_free (db_reader *reader_ptr) |
Free reader resources (legacy name, use db_reader_release instead) | |
DB_DEF size_t | db_reader_position (db_reader reader) |
Get current read position. | |
DB_DEF size_t | db_reader_remaining (db_reader reader) |
Get number of bytes remaining. | |
DB_DEF bool | db_reader_can_read (db_reader reader, size_t bytes) |
Check if reader can read specified number of bytes. | |
DB_DEF void | db_reader_seek (db_reader reader, size_t position) |
Seek to specific position. | |
DB_DEF uint8_t | db_read_uint8 (db_reader reader) |
Read uint8 value. | |
DB_DEF uint16_t | db_read_uint16_le (db_reader reader) |
Read uint16 value in little-endian format. | |
DB_DEF uint16_t | db_read_uint16_be (db_reader reader) |
Read uint16 value in big-endian format. | |
DB_DEF uint32_t | db_read_uint32_le (db_reader reader) |
Read uint32 value in little-endian format. | |
DB_DEF uint32_t | db_read_uint32_be (db_reader reader) |
Read uint32 value in big-endian format. | |
DB_DEF uint64_t | db_read_uint64_le (db_reader reader) |
Read uint64 value in little-endian format. | |
DB_DEF uint64_t | db_read_uint64_be (db_reader reader) |
Read uint64 value in big-endian format. | |
DB_DEF void | db_read_bytes (db_reader reader, void *data, size_t size) |
Read raw bytes. | |
Functions for reading buffers with primitive types and cursor.
typedef struct db_reader_internal* db_reader |
Opaque reader handle for parsing buffers.
Read raw bytes.
reader | Reader instance |
data | Output buffer for data |
size | Number of bytes to read |
Read uint16 value in big-endian format.
reader | Reader instance |
Read uint16 value in little-endian format.
reader | Reader instance |
Read uint32 value in big-endian format.
reader | Reader instance |
Read uint32 value in little-endian format.
reader | Reader instance |
Read uint64 value in big-endian format.
reader | Reader instance |
Read uint64 value in little-endian format.
reader | Reader instance |
Read uint8 value.
reader | Reader instance |
Check if reader can read specified number of bytes.
reader | Reader instance |
bytes | Number of bytes to check |
Free reader resources (legacy name, use db_reader_release instead)
reader_ptr | Pointer to reader (will be set to NULL) |
Create a new buffer reader.
buf | Buffer to read from |
Get current read position.
reader | Reader instance |
Decrease reader reference count and potentially free reader.
reader_ptr | Pointer to reader variable (will be set to NULL) |
Get number of bytes remaining.
reader | Reader instance |
Increase reader reference count (share ownership)
reader | Reader to retain (must not be NULL) |