Go to the source code of this file.
Data Structures | |
struct | ldns_struct_buffer |
LDNS implementation of buffers to ease operations. More... | |
Defines | |
#define | LDNS_MIN_BUFLEN 256 |
number of initial bytes in buffer of which we cannot tell the size before hand | |
Typedefs | |
typedef ldns_struct_buffer | ldns_buffer |
Functions | |
ldns_buffer * | ldns_buffer_new (size_t capacity) |
creates a new buffer with the specified capacity. | |
void | ldns_buffer_new_frm_data (ldns_buffer *buffer, void *data, size_t size) |
creates a buffer with the specified data. | |
void | ldns_buffer_clear (ldns_buffer *buffer) |
clears the buffer and make it ready for writing. | |
void | ldns_buffer_flip (ldns_buffer *buffer) |
makes the buffer ready for reading the data that has been written to the buffer. | |
void | ldns_buffer_rewind (ldns_buffer *buffer) |
make the buffer ready for re-reading the data. | |
bool | ldns_buffer_set_capacity (ldns_buffer *buffer, size_t capacity) |
changes the buffer's capacity. | |
bool | ldns_buffer_reserve (ldns_buffer *buffer, size_t amount) |
ensures BUFFER can contain at least AMOUNT more bytes. | |
int | ldns_buffer_printf (ldns_buffer *buffer, const char *format,...) |
prints to the buffer, increasing the capacity if required using buffer_reserve(). | |
void | ldns_buffer_free (ldns_buffer *buffer) |
frees the buffer. | |
void * | ldns_buffer_export (ldns_buffer *buffer) |
Makes the buffer fixed and returns a pointer to the data. |
#define LDNS_MIN_BUFLEN 256 |
typedef struct ldns_struct_buffer ldns_buffer |
void ldns_buffer_clear | ( | ldns_buffer * | buffer | ) |
clears the buffer and make it ready for writing.
The buffer's limit is set to the capacity and the position is set to 0.
void* ldns_buffer_export | ( | ldns_buffer * | buffer | ) |
Makes the buffer fixed and returns a pointer to the data.
The caller is responsible for free'ing the result.
[in] | *buffer | the buffer to be exported |
void ldns_buffer_flip | ( | ldns_buffer * | buffer | ) |
makes the buffer ready for reading the data that has been written to the buffer.
The buffer's limit is set to the current position and the position is set to 0.
[in] | buffer | the buffer to flip |
void ldns_buffer_free | ( | ldns_buffer * | buffer | ) |
frees the buffer.
[in] | *buffer | the buffer to be freed |
ldns_buffer* ldns_buffer_new | ( | size_t | capacity | ) |
creates a new buffer with the specified capacity.
[in] | capacity | the size (in bytes) to allocate for the buffer |
void ldns_buffer_new_frm_data | ( | ldns_buffer * | buffer, | |
void * | data, | |||
size_t | size | |||
) |
creates a buffer with the specified data.
The data IS copied and MEMORY allocations are done. The buffer is not fixed and can be resized using buffer_reserve().
[in] | buffer | pointer to the buffer to put the data in |
[in] | data | the data to encapsulate in the buffer |
[in] | size | the size of the data |
int ldns_buffer_printf | ( | ldns_buffer * | buffer, | |
const char * | format, | |||
... | ||||
) |
prints to the buffer, increasing the capacity if required using buffer_reserve().
The buffer's position is set to the terminating '\0'. Returns the number of characters written (not including the terminating '\0') or -1 on failure.
bool ldns_buffer_reserve | ( | ldns_buffer * | buffer, | |
size_t | amount | |||
) |
ensures BUFFER can contain at least AMOUNT more bytes.
The buffer's capacity is increased if necessary using buffer_set_capacity().
The buffer's limit is always set to the (possibly increased) capacity.
void ldns_buffer_rewind | ( | ldns_buffer * | buffer | ) |
make the buffer ready for re-reading the data.
The buffer's position is reset to 0.
bool ldns_buffer_set_capacity | ( | ldns_buffer * | buffer, | |
size_t | capacity | |||
) |
changes the buffer's capacity.
The data is reallocated so any pointers to the data may become invalid. The buffer's limit is set to the buffer's new capacity.