diff options
Diffstat (limited to 'include/kitchensink/internal/utils/kitringbuffer.h')
-rw-r--r-- | include/kitchensink/internal/utils/kitringbuffer.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/kitchensink/internal/utils/kitringbuffer.h b/include/kitchensink/internal/utils/kitringbuffer.h new file mode 100644 index 0000000..2f67520 --- /dev/null +++ b/include/kitchensink/internal/utils/kitringbuffer.h @@ -0,0 +1,23 @@ +#ifndef KITRINGBUFFER_H +#define KITRINGBUFFER_H + +#include "kitchensink/kitconfig.h" + +typedef struct Kit_RingBuffer { + int size; + int len; + int wpos, rpos; + char* data; +} Kit_RingBuffer; + +KIT_LOCAL Kit_RingBuffer* Kit_CreateRingBuffer(unsigned int size); +KIT_LOCAL void Kit_DestroyRingBuffer(Kit_RingBuffer* rb); +KIT_LOCAL int Kit_WriteRingBuffer(Kit_RingBuffer *rb, const char* data, int len); +KIT_LOCAL int Kit_ReadRingBuffer(Kit_RingBuffer *rb, char* data, int len); +KIT_LOCAL int Kit_PeekRingBuffer(const Kit_RingBuffer *rb, char* data, int len); +KIT_LOCAL int Kit_AdvanceRingBuffer(Kit_RingBuffer *rb, int len); +KIT_LOCAL int Kit_GetRingBufferLength(const Kit_RingBuffer *rb); +KIT_LOCAL int Kit_GetRingBufferSize(const Kit_RingBuffer *rb); +KIT_LOCAL int Kit_GetRingBufferFree(const Kit_RingBuffer *rb); + +#endif // KITRINGBUFFER_H |