pidgin 2.14.14dev
circbuffer.h File Reference

Buffer Utility Functions. More...

#include <glib.h>
Include dependency graph for circbuffer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _PurpleCircBuffer
 

Typedefs

typedef struct _PurpleCircBuffer PurpleCircBuffer
 

Functions

PurpleCircBufferpurple_circ_buffer_new (gsize growsize)
 Creates a new circular buffer. More...
 
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). More...
 
void purple_circ_buffer_append (PurpleCircBuffer *buf, gconstpointer src, gsize len)
 Append data to the PurpleCircBuffer. More...
 
gsize purple_circ_buffer_get_max_read (const PurpleCircBuffer *buf)
 Determine the maximum number of contiguous bytes that can be read from the PurpleCircBuffer. More...
 
gboolean purple_circ_buffer_mark_read (PurpleCircBuffer *buf, gsize len)
 Mark the number of bytes that have been read from the buffer. More...
 

Detailed Description

Buffer Utility Functions.

Definition in file circbuffer.h.

Function Documentation

◆ purple_circ_buffer_append()

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
bufThe PurpleCircBuffer to which to append the data
srcpointer to the data to copy into the buffer
lennumber of bytes to copy into the buffer

◆ purple_circ_buffer_destroy()

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
bufThe PurpleCircBuffer to free

◆ purple_circ_buffer_get_max_read()

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
bufthe 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

◆ purple_circ_buffer_mark_read()

gboolean purple_circ_buffer_mark_read ( PurpleCircBuffer buf,
gsize  len 
)

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

Parameters
bufThe PurpleCircBuffer to mark bytes read from
lenThe number of bytes to mark as read
Returns
TRUE if we successfully marked the bytes as having been read, FALSE otherwise.

◆ purple_circ_buffer_new()

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
growsizeThe 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