summaryrefslogtreecommitdiff
path: root/include/kitchensink/internal/kitringbuffer.h
blob: 773ba29b36e0bb37b40edbfcf8ad5559c1326d09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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);

#endif // KITRINGBUFFER_H