33 #define DISABLE_DEBUGLOG
35 #include "ringbuffer_p.h"
36 #include <gwenhywfar/misc.h>
37 #include <gwenhywfar/debug.h>
48 rb->ptr=(
char*)malloc(size);
71 if ((rb->bufferSize-rb->bytesUsed)==0) {
79 if ((rb->bufferSize-rb->bytesUsed)==0)
81 if (rb->writePos>=rb->readPos)
82 psize=rb->bufferSize-rb->writePos;
84 psize=rb->readPos-rb->writePos;
88 memmove(rb->ptr+rb->writePos, buffer, psize);
90 if (rb->writePos>=rb->bufferSize)
97 if (rb->bytesUsed>rb->maxBytesUsed)
98 rb->maxBytesUsed=rb->bytesUsed;
109 if (rb->bytesUsed==0) {
115 if (rb->readPos>=rb->writePos)
116 psize=rb->bufferSize-rb->readPos;
118 psize=rb->writePos-rb->readPos;
130 if ((rb->bufferSize-rb->bytesUsed)==0) {
136 if (rb->writePos>=rb->readPos)
137 psize=rb->bufferSize-rb->writePos;
139 psize=rb->readPos-rb->writePos;
150 if (rb->bytesUsed<psize) {
155 if (rb->readPos>=rb->bufferSize)
157 rb->bytesUsed-=psize;
158 rb->throughput+=psize;
167 if ((rb->bufferSize-rb->bytesUsed)<psize) {
173 if (rb->writePos>=rb->bufferSize)
175 rb->bytesUsed+=psize;
176 if (rb->bytesUsed>rb->maxBytesUsed)
177 rb->maxBytesUsed=rb->bytesUsed;
188 if (rb->bytesUsed==0) {
196 if (rb->bytesUsed==0)
198 if (rb->readPos>=rb->writePos)
199 psize=rb->bufferSize-rb->readPos;
201 psize=rb->writePos-rb->readPos;
205 memmove(buffer, rb->ptr+rb->readPos, psize);
207 if (rb->readPos>=rb->bufferSize)
209 rb->bytesUsed-=psize;
214 rb->throughput+=*size;
222 return rb->bytesUsed;
229 return rb->bufferSize-rb->bytesUsed;
236 return rb->bufferSize;
244 if ((rb->bufferSize-rb->bytesUsed)==0) {
250 rb->ptr[rb->writePos]=c;
252 if (rb->writePos>=rb->bufferSize)
255 if (rb->bytesUsed>rb->maxBytesUsed)
256 rb->maxBytesUsed=rb->bytesUsed;
266 if (rb->bytesUsed==0) {
272 c=(
unsigned char)rb->ptr[rb->readPos];
274 if (rb->readPos>=rb->bufferSize)
285 return rb->maxBytesUsed;
299 return rb->throughput;
313 return rb->fullCounter;
327 return rb->emptyCounter;
341 return rb->ptr+rb->readPos;
348 return rb->ptr+rb->writePos;
#define DBG_MEM_INC(o, attach)
const char * GWEN_RingBuffer_GetReadPointer(const GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetMaxUnsegmentedWrite(GWEN_RINGBUFFER *rb)
#define GWEN_FREE_OBJECT(varname)
int GWEN_RingBuffer_ReadByte(GWEN_RINGBUFFER *rb)
int GWEN_RingBuffer_ReadBytes(GWEN_RINGBUFFER *rb, char *buffer, uint32_t *size)
char * GWEN_RingBuffer_GetWritePointer(const GWEN_RINGBUFFER *rb)
#define GWEN_NEW_OBJECT(typ, varname)
uint32_t GWEN_RingBuffer_GetThroughput(GWEN_RINGBUFFER *rb)
void GWEN_RingBuffer_Reset(GWEN_RINGBUFFER *rb)
#define DBG_DEBUG(dbg_logger, format, args...)
uint32_t GWEN_RingBuffer_GetBufferSize(const GWEN_RINGBUFFER *rb)
#define DBG_ERROR(dbg_logger, format, args...)
uint32_t GWEN_RingBuffer_GetUsedBytes(const GWEN_RINGBUFFER *rb)
void GWEN_RingBuffer_SkipBytesRead(GWEN_RINGBUFFER *rb, uint32_t psize)
void GWEN_RingBuffer_free(GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetMaxUnsegmentedRead(GWEN_RINGBUFFER *rb)
int GWEN_RingBuffer_WriteByte(GWEN_RINGBUFFER *rb, char c)
uint32_t GWEN_RingBuffer_GetEmptyCounter(const GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetMaxUsedBytes(const GWEN_RINGBUFFER *rb)
GWEN_RINGBUFFER * GWEN_RingBuffer_new(unsigned int size)
struct GWEN_RINGBUFFER GWEN_RINGBUFFER
int GWEN_RingBuffer_WriteBytes(GWEN_RINGBUFFER *rb, const char *buffer, uint32_t *size)
void GWEN_RingBuffer_ResetFullCounter(GWEN_RINGBUFFER *rb)
void GWEN_RingBuffer_SkipBytesWrite(GWEN_RINGBUFFER *rb, uint32_t psize)
uint32_t GWEN_RingBuffer_GetBytesLeft(const GWEN_RINGBUFFER *rb)
void GWEN_RingBuffer_ResetMaxUsedBytes(GWEN_RINGBUFFER *rb)
void GWEN_RingBuffer_ResetEmptyCounter(GWEN_RINGBUFFER *rb)
void GWEN_RingBuffer_ResetThroughput(GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetFullCounter(const GWEN_RINGBUFFER *rb)