gwenhywfar  5.11.1beta
Typedefs
ringbuffer.h File Reference
#include <gwenhywfar/types.h>
#include <gwenhywfar/gwenhywfarapi.h>

Go to the source code of this file.

Typedefs

typedef struct GWEN_RINGBUFFER GWEN_RINGBUFFER
 

Functions

Constructor And Destructor
GWENHYWFAR_API void GWEN_RingBuffer_free (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API GWEN_RINGBUFFERGWEN_RingBuffer_new (unsigned int size)
 
Reading And Writing
GWENHYWFAR_API int GWEN_RingBuffer_ReadByte (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API int GWEN_RingBuffer_ReadBytes (GWEN_RINGBUFFER *rb, char *buffer, uint32_t *size)
 
GWENHYWFAR_API int GWEN_RingBuffer_WriteByte (GWEN_RINGBUFFER *rb, char c)
 
GWENHYWFAR_API int GWEN_RingBuffer_WriteBytes (GWEN_RINGBUFFER *rb, const char *buffer, uint32_t *size)
 
Informational Functions
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetBufferSize (const GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetBytesLeft (const GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetUsedBytes (const GWEN_RINGBUFFER *rb)
 
Statistical Functions
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetEmptyCounter (const GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetFullCounter (const GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetMaxUsedBytes (const GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetThroughput (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API void GWEN_RingBuffer_Reset (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API void GWEN_RingBuffer_ResetEmptyCounter (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API void GWEN_RingBuffer_ResetFullCounter (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API void GWEN_RingBuffer_ResetMaxUsedBytes (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API void GWEN_RingBuffer_ResetThroughput (GWEN_RINGBUFFER *rb)
 
Functions For Direct Manipulation Of The Buffer

Please use these functions with care. These function are supported in order to avoid unnecessary copying.

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetMaxUnsegmentedRead (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetMaxUnsegmentedWrite (GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API const char * GWEN_RingBuffer_GetReadPointer (const GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API char * GWEN_RingBuffer_GetWritePointer (const GWEN_RINGBUFFER *rb)
 
GWENHYWFAR_API void GWEN_RingBuffer_SkipBytesRead (GWEN_RINGBUFFER *rb, uint32_t psize)
 
GWENHYWFAR_API void GWEN_RingBuffer_SkipBytesWrite (GWEN_RINGBUFFER *rb, uint32_t psize)
 

Typedef Documentation

◆ GWEN_RINGBUFFER

Definition at line 1 of file ringbuffer.h.

Function Documentation

◆ GWEN_RingBuffer_free()

GWENHYWFAR_API void GWEN_RingBuffer_free ( GWEN_RINGBUFFER rb)

Destructor.

◆ GWEN_RingBuffer_GetBufferSize()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetBufferSize ( const GWEN_RINGBUFFER rb)

Returns the size of the ring buffer.

◆ GWEN_RingBuffer_GetBytesLeft()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetBytesLeft ( const GWEN_RINGBUFFER rb)

Returns the number of bytes which still can be stored inside the ring buffer.

◆ GWEN_RingBuffer_GetEmptyCounter()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetEmptyCounter ( const GWEN_RINGBUFFER rb)

Returns the number of times the buffer was empty.

◆ GWEN_RingBuffer_GetFullCounter()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetFullCounter ( const GWEN_RINGBUFFER rb)

Returns the number of times the buffer was full.

◆ GWEN_RingBuffer_GetMaxUnsegmentedRead()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetMaxUnsegmentedRead ( GWEN_RINGBUFFER rb)

Returns the maximum number of bytes which can be read with a following call to GWEN_RingBuffer_ReadBytes. This value (if not 0) can be used for GWEN_RingBuffer_SkipBytesRead.

◆ GWEN_RingBuffer_GetMaxUnsegmentedWrite()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetMaxUnsegmentedWrite ( GWEN_RINGBUFFER rb)

Returns the maximum number of bytes which can be written with a following call to GWEN_RingBuffer_WriteBytes. This value (if not 0) can be used for GWEN_RingBuffer_SkipBytesWrite.

◆ GWEN_RingBuffer_GetMaxUsedBytes()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetMaxUsedBytes ( const GWEN_RINGBUFFER rb)

Returns the maximum number of bytes which has been stored in the buffer.

◆ GWEN_RingBuffer_GetReadPointer()

GWENHYWFAR_API const char* GWEN_RingBuffer_GetReadPointer ( const GWEN_RINGBUFFER rb)

Returne the current read pointer. Please note that the return value of GWEN_RingBuffer_GetMaxUnsegmentedRead indicates the maximum number of bytes at this position available! Trying to access bytes beyond that boundary will most likely result in segmentation faults. Please make sure that you call GWEN_RingBuffer_SkipBytesRead after taking data from the buffer in order to keep the internal structure intact.

◆ GWEN_RingBuffer_GetThroughput()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetThroughput ( GWEN_RINGBUFFER rb)

Returns the number of bytes which have passed through this buffer (i.e. bytes that have been written to and read from the buffer.

◆ GWEN_RingBuffer_GetUsedBytes()

GWENHYWFAR_API uint32_t GWEN_RingBuffer_GetUsedBytes ( const GWEN_RINGBUFFER rb)

Returns the number of bytes stored inside the ring buffer.

◆ GWEN_RingBuffer_GetWritePointer()

GWENHYWFAR_API char* GWEN_RingBuffer_GetWritePointer ( const GWEN_RINGBUFFER rb)

Returne the current write pointer. Please note that the return value of GWEN_RingBuffer_GetMaxUnsegmentedWrite indicates the maximum number of bytes at this position available! Trying to access bytes beyond that boundary will most likely result in segmentation faults. Please make sure that you call GWEN_RingBuffer_SkipBytesWrite after writing data to the buffer in order to keep the internal structure intact.

◆ GWEN_RingBuffer_new()

GWENHYWFAR_API GWEN_RINGBUFFER* GWEN_RingBuffer_new ( unsigned int  size)

Creates a new ring buffer

Parameters
sizemaximum size of the ring buffer

◆ GWEN_RingBuffer_ReadByte()

GWENHYWFAR_API int GWEN_RingBuffer_ReadByte ( GWEN_RINGBUFFER rb)

Reads a single byte from the ring buffer.

◆ GWEN_RingBuffer_ReadBytes()

GWENHYWFAR_API int GWEN_RingBuffer_ReadBytes ( GWEN_RINGBUFFER rb,
char *  buffer,
uint32_t *  size 
)

Read bytes from the ring buffer.

Parameters
rbring buffer
bufferpointer to the destination buffer
sizepointer to a variable that contains the number of bytes to read. Upon return this variable contains the number of bytes actually copied.

◆ GWEN_RingBuffer_Reset()

GWENHYWFAR_API void GWEN_RingBuffer_Reset ( GWEN_RINGBUFFER rb)

◆ GWEN_RingBuffer_ResetEmptyCounter()

GWENHYWFAR_API void GWEN_RingBuffer_ResetEmptyCounter ( GWEN_RINGBUFFER rb)

◆ GWEN_RingBuffer_ResetFullCounter()

GWENHYWFAR_API void GWEN_RingBuffer_ResetFullCounter ( GWEN_RINGBUFFER rb)

◆ GWEN_RingBuffer_ResetMaxUsedBytes()

GWENHYWFAR_API void GWEN_RingBuffer_ResetMaxUsedBytes ( GWEN_RINGBUFFER rb)

Resets the counter for the maximum number of bytes stored in the buffer.

◆ GWEN_RingBuffer_ResetThroughput()

GWENHYWFAR_API void GWEN_RingBuffer_ResetThroughput ( GWEN_RINGBUFFER rb)

Resets the buffers throughput counter to zero.

◆ GWEN_RingBuffer_SkipBytesRead()

GWENHYWFAR_API void GWEN_RingBuffer_SkipBytesRead ( GWEN_RINGBUFFER rb,
uint32_t  psize 
)

Adjusts the internal pointers and statistical data as if GWEN_RingBuffer_ReadBytes had been called. Please note that the size value given here MUST be <= the value returned by GWEN_RingBuffer_GetMaxUnsegmentedRead !

◆ GWEN_RingBuffer_SkipBytesWrite()

GWENHYWFAR_API void GWEN_RingBuffer_SkipBytesWrite ( GWEN_RINGBUFFER rb,
uint32_t  psize 
)

Adjusts the internal pointers and statistical data as if GWEN_RingBuffer_WriteBytes had been called. Please note that the size value given here MUST be <= the value returned by GWEN_RingBuffer_GetMaxUnsegmentedWrite !

◆ GWEN_RingBuffer_WriteByte()

GWENHYWFAR_API int GWEN_RingBuffer_WriteByte ( GWEN_RINGBUFFER rb,
char  c 
)

Writes a single byte to the ring buffer.

◆ GWEN_RingBuffer_WriteBytes()

GWENHYWFAR_API int GWEN_RingBuffer_WriteBytes ( GWEN_RINGBUFFER rb,
const char *  buffer,
uint32_t *  size 
)

Writes the given bytes into the ring buffer.

Parameters
rbring buffer
bufferpointer to bytes to write
sizepointer to a variable that contains the number of bytes to write. Upon return this variable contains the number of bytes actually copied.