33 #define DISABLE_DEBUGLOG 35 #include "ringbuffer_p.h" 36 #include <gwenhywfar/misc.h> 37 #include <gwenhywfar/debug.h> 49 rb->ptr=(
char *)malloc(size);
74 if ((rb->bufferSize-rb->bytesUsed)==0) {
82 if ((rb->bufferSize-rb->bytesUsed)==0)
84 if (rb->writePos>=rb->readPos)
85 psize=rb->bufferSize-rb->writePos;
87 psize=rb->readPos-rb->writePos;
91 memmove(rb->ptr+rb->writePos, buffer, psize);
93 if (rb->writePos>=rb->bufferSize)
100 if (rb->bytesUsed>rb->maxBytesUsed)
101 rb->maxBytesUsed=rb->bytesUsed;
112 if (rb->bytesUsed==0) {
118 if (rb->readPos>=rb->writePos)
119 psize=rb->bufferSize-rb->readPos;
121 psize=rb->writePos-rb->readPos;
133 if ((rb->bufferSize-rb->bytesUsed)==0) {
139 if (rb->writePos>=rb->readPos)
140 psize=rb->bufferSize-rb->writePos;
142 psize=rb->readPos-rb->writePos;
154 if (rb->bytesUsed<psize) {
159 if (rb->readPos>=rb->bufferSize)
161 rb->bytesUsed-=psize;
162 rb->throughput+=psize;
172 if ((rb->bufferSize-rb->bytesUsed)<psize) {
178 if (rb->writePos>=rb->bufferSize)
180 rb->bytesUsed+=psize;
181 if (rb->bytesUsed>rb->maxBytesUsed)
182 rb->maxBytesUsed=rb->bytesUsed;
194 if (rb->bytesUsed==0) {
202 if (rb->bytesUsed==0)
204 if (rb->readPos>=rb->writePos)
205 psize=rb->bufferSize-rb->readPos;
207 psize=rb->writePos-rb->readPos;
211 memmove(buffer, rb->ptr+rb->readPos, psize);
213 if (rb->readPos>=rb->bufferSize)
215 rb->bytesUsed-=psize;
220 rb->throughput+=*size;
229 return rb->bytesUsed;
237 return rb->bufferSize-rb->bytesUsed;
245 return rb->bufferSize;
254 if ((rb->bufferSize-rb->bytesUsed)==0) {
260 rb->ptr[rb->writePos]=c;
262 if (rb->writePos>=rb->bufferSize)
265 if (rb->bytesUsed>rb->maxBytesUsed)
266 rb->maxBytesUsed=rb->bytesUsed;
277 if (rb->bytesUsed==0) {
283 c=(
unsigned char)rb->ptr[rb->readPos];
285 if (rb->readPos>=rb->bufferSize)
297 return rb->maxBytesUsed;
313 return rb->throughput;
329 return rb->fullCounter;
345 return rb->emptyCounter;
361 return rb->ptr+rb->readPos;
369 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)