dynamic_buffer.h v0.2.2
Reference-counted byte buffer library for efficient I/O operations
Loading...
Searching...
No Matches
Typedefs | Functions
Buffer Reader API

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.
 

Detailed Description

Functions for reading buffers with primitive types and cursor.

Typedef Documentation

◆ db_reader

typedef struct db_reader_internal* db_reader

Opaque reader handle for parsing buffers.

Function Documentation

◆ db_read_bytes()

DB_DEF void db_read_bytes ( db_reader  reader,
void *  data,
size_t  size 
)

Read raw bytes.

Parameters
readerReader instance
dataOutput buffer for data
sizeNumber of bytes to read

◆ db_read_uint16_be()

DB_DEF uint16_t db_read_uint16_be ( db_reader  reader)

Read uint16 value in big-endian format.

Parameters
readerReader instance
Returns
Read value

◆ db_read_uint16_le()

DB_DEF uint16_t db_read_uint16_le ( db_reader  reader)

Read uint16 value in little-endian format.

Parameters
readerReader instance
Returns
Read value

◆ db_read_uint32_be()

DB_DEF uint32_t db_read_uint32_be ( db_reader  reader)

Read uint32 value in big-endian format.

Parameters
readerReader instance
Returns
Read value

◆ db_read_uint32_le()

DB_DEF uint32_t db_read_uint32_le ( db_reader  reader)

Read uint32 value in little-endian format.

Parameters
readerReader instance
Returns
Read value

◆ db_read_uint64_be()

DB_DEF uint64_t db_read_uint64_be ( db_reader  reader)

Read uint64 value in big-endian format.

Parameters
readerReader instance
Returns
Read value

◆ db_read_uint64_le()

DB_DEF uint64_t db_read_uint64_le ( db_reader  reader)

Read uint64 value in little-endian format.

Parameters
readerReader instance
Returns
Read value

◆ db_read_uint8()

DB_DEF uint8_t db_read_uint8 ( db_reader  reader)

Read uint8 value.

Parameters
readerReader instance
Returns
Read value

◆ db_reader_can_read()

DB_DEF bool db_reader_can_read ( db_reader  reader,
size_t  bytes 
)

Check if reader can read specified number of bytes.

Parameters
readerReader instance
bytesNumber of bytes to check
Returns
true if bytes are available

◆ db_reader_free()

DB_DEF void db_reader_free ( db_reader reader_ptr)

Free reader resources (legacy name, use db_reader_release instead)

Parameters
reader_ptrPointer to reader (will be set to NULL)

◆ db_reader_new()

DB_DEF db_reader db_reader_new ( db_buffer  buf)

Create a new buffer reader.

Parameters
bufBuffer to read from
Returns
New reader instance
Example:
db_reader reader = db_reader_new(buffer);
uint16_t value = db_read_uint16_le(reader);
char data[10];
db_read_bytes(reader, data, sizeof(data));
DB_DEF db_reader db_reader_new(db_buffer buf)
Create a new buffer reader.
DB_DEF void db_read_bytes(db_reader reader, void *data, size_t size)
Read raw bytes.
DB_DEF void db_reader_release(db_reader *reader_ptr)
Decrease reader reference count and potentially free reader.
struct db_reader_internal * db_reader
Opaque reader handle for parsing buffers.
Definition dynamic_buffer.h:621
DB_DEF uint16_t db_read_uint16_le(db_reader reader)
Read uint16 value in little-endian format.

◆ db_reader_position()

DB_DEF size_t db_reader_position ( db_reader  reader)

Get current read position.

Parameters
readerReader instance
Returns
Current position in bytes

◆ db_reader_release()

DB_DEF void db_reader_release ( db_reader reader_ptr)

Decrease reader reference count and potentially free reader.

Parameters
reader_ptrPointer to reader variable (will be set to NULL)

◆ db_reader_remaining()

DB_DEF size_t db_reader_remaining ( db_reader  reader)

Get number of bytes remaining.

Parameters
readerReader instance
Returns
Remaining bytes from current position

◆ db_reader_retain()

DB_DEF db_reader db_reader_retain ( db_reader  reader)

Increase reader reference count (share ownership)

Parameters
readerReader to retain (must not be NULL)
Returns
The same reader for convenience

◆ db_reader_seek()

DB_DEF void db_reader_seek ( db_reader  reader,
size_t  position 
)

Seek to specific position.

Parameters
readerReader instance
positionPosition to seek to