circbuffer.h File Reference

Buffer Utility Functions. More...

#include <glib.h>

Go to the source code of this file.

Data Structures

struct  _PurpleCircBuffer

Typedefs

typedef struct _PurpleCircBuffer PurpleCircBuffer

Functions

PurpleCircBuffer * purple_circ_buffer_new (gsize growsize)
 Creates a new circular buffer.
void purple_circ_buffer_destroy (PurpleCircBuffer *buf)
 Dispose of the PurpleCircBuffer and free any memory used by it (including any memory used by the internal buffer).
void purple_circ_buffer_append (PurpleCircBuffer *buf, gconstpointer src, gsize len)
 Append data to the PurpleCircBuffer.
gsize purple_circ_buffer_get_max_read (const PurpleCircBuffer *buf)
 Determine the maximum number of contiguous bytes that can be read from the PurpleCircBuffer.
gboolean purple_circ_buffer_mark_read (PurpleCircBuffer *buf, gsize len)
 Mark the number of bytes that have been read from the buffer.


Detailed Description

Buffer Utility Functions.

Definition in file circbuffer.h.


Function Documentation

void purple_circ_buffer_append ( PurpleCircBuffer *  buf,
gconstpointer  src,
gsize  len 
)

Append data to the PurpleCircBuffer.

This will grow the internal buffer to fit the added data, if needed.

Parameters:
buf The PurpleCircBuffer to which to append the data
src pointer to the data to copy into the buffer
len number of bytes to copy into the buffer

void purple_circ_buffer_destroy ( PurpleCircBuffer *  buf  ) 

Dispose of the PurpleCircBuffer and free any memory used by it (including any memory used by the internal buffer).

Parameters:
buf The PurpleCircBuffer to free

gsize purple_circ_buffer_get_max_read ( const PurpleCircBuffer *  buf  ) 

Determine the maximum number of contiguous bytes that can be read from the PurpleCircBuffer.

Note: This may not be the total number of bytes that are buffered - a subsequent call after calling purple_circ_buffer_mark_read() may indicate more data is available to read.

Parameters:
buf the PurpleCircBuffer for which to determine the maximum contiguous bytes that can be read.
Returns:
the number of bytes that can be read from the PurpleCircBuffer

gboolean purple_circ_buffer_mark_read ( PurpleCircBuffer *  buf,
gsize  len 
)

Mark the number of bytes that have been read from the buffer.

Parameters:
buf The PurpleCircBuffer to mark bytes read from
len The number of bytes to mark as read
Returns:
TRUE if we successfully marked the bytes as having been read, FALSE otherwise.

PurpleCircBuffer* purple_circ_buffer_new ( gsize  growsize  ) 

Creates a new circular buffer.

This will not allocate any memory for the actual buffer until data is appended to it.

Parameters:
growsize The amount that the buffer should grow the first time data is appended and every time more space is needed. Pass in "0" to use the default of 256 bytes.
Returns:
The new PurpleCircBuffer. This should be freed with purple_circ_buffer_destroy when you are done with it