Libparserutils
Data Structures | Typedefs | Functions

buffer.h File Reference

#include <parserutils/errors.h>
#include <parserutils/functypes.h>

Go to the source code of this file.

Data Structures

struct  parserutils_buffer

Typedefs

typedef struct parserutils_buffer parserutils_buffer

Functions

parserutils_error parserutils_buffer_create (parserutils_buffer **buffer)
 Create a memory buffer.
parserutils_error parserutils_buffer_destroy (parserutils_buffer *buffer)
 Destroy a memory buffer.
parserutils_error parserutils_buffer_append (parserutils_buffer *buffer, const uint8_t *data, size_t len)
 Append data to a memory buffer.
parserutils_error parserutils_buffer_insert (parserutils_buffer *buffer, size_t offset, const uint8_t *data, size_t len)
 Insert data into a memory buffer.
parserutils_error parserutils_buffer_discard (parserutils_buffer *buffer, size_t offset, size_t len)
 Discard a section of a memory buffer.
parserutils_error parserutils_buffer_grow (parserutils_buffer *buffer)
 Extend the amount of space allocated for a memory buffer.
parserutils_error parserutils_buffer_randomise (parserutils_buffer *buffer)

Typedef Documentation

Definition at line 25 of file buffer.h.


Function Documentation

parserutils_error parserutils_buffer_append ( parserutils_buffer buffer,
const uint8_t *  data,
size_t  len 
)

Append data to a memory buffer.

Parameters:
bufferThe buffer to append to
dataThe data to append
lenThe length, in bytes, of the data to append
Returns:
PARSERUTILS_OK on success, appropriate error otherwise.

Definition at line 72 of file buffer.c.

References parserutils_buffer::allocated, parserutils_buffer::data, len, parserutils_buffer::length, parserutils_buffer_grow(), and PARSERUTILS_OK.

Referenced by parserutils_buffer_insert(), and parserutils_inputstream_append().

parserutils_error parserutils_buffer_create ( parserutils_buffer **  buffer)

Create a memory buffer.

Parameters:
bufferPointer to location to receive memory buffer
Returns:
PARSERUTILS_OK on success, PARSERUTILS_BADPARM on bad parameters, PARSERUTILS_NOMEM on memory exhausion

Definition at line 22 of file buffer.c.

References parserutils_buffer::allocated, parserutils_buffer::data, DEFAULT_SIZE, parserutils_buffer::length, PARSERUTILS_BADPARM, PARSERUTILS_NOMEM, and PARSERUTILS_OK.

Referenced by parserutils_inputstream_create().

parserutils_error parserutils_buffer_destroy ( parserutils_buffer buffer)

Destroy a memory buffer.

Parameters:
bufferThe buffer to destroy
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 53 of file buffer.c.

References parserutils_buffer::data, PARSERUTILS_BADPARM, and PARSERUTILS_OK.

Referenced by parserutils_inputstream_create(), and parserutils_inputstream_destroy().

parserutils_error parserutils_buffer_discard ( parserutils_buffer buffer,
size_t  offset,
size_t  len 
)

Discard a section of a memory buffer.

Parameters:
bufferThe buffer to discard data from
offsetThe offset into the buffer of the start of the section
lenThe number of bytes to discard
Returns:
PARSERUTILS_OK on success, appropriate error otherwise.

Definition at line 130 of file buffer.c.

References parserutils_buffer::data, len, parserutils_buffer::length, PARSERUTILS_BADPARM, and PARSERUTILS_OK.

Referenced by parserutils_inputstream_refill_buffer(), and parserutils_inputstream_strip_bom().

parserutils_error parserutils_buffer_grow ( parserutils_buffer buffer)

Extend the amount of space allocated for a memory buffer.

Parameters:
bufferThe buffer to extend
Returns:
PARSERUTILS_OK on success, appropriate error otherwise.

Definition at line 150 of file buffer.c.

References parserutils_buffer::allocated, parserutils_buffer::data, PARSERUTILS_NOMEM, and PARSERUTILS_OK.

Referenced by parserutils_buffer_append(), parserutils_buffer_insert(), and parserutils_inputstream_refill_buffer().

parserutils_error parserutils_buffer_insert ( parserutils_buffer buffer,
size_t  offset,
const uint8_t *  data,
size_t  len 
)

Insert data into a memory buffer.

Parameters:
bufferThe buffer to insert into
offsetThe offset into the buffer to insert at
dataThe data to insert
lenThe length, in bytes, of the data to insert
Returns:
PARSERUTILS_OK on success, appropriate error otherwise

Definition at line 97 of file buffer.c.

References parserutils_buffer::allocated, parserutils_buffer::data, len, parserutils_buffer::length, PARSERUTILS_BADPARM, parserutils_buffer_append(), parserutils_buffer_grow(), and PARSERUTILS_OK.

Referenced by parserutils_inputstream_insert().

parserutils_error parserutils_buffer_randomise ( parserutils_buffer buffer)