Go to the documentation of this file.
43 #ifndef CCXX_BUFFER_H_
44 #define CCXX_BUFFER_H_
46 #ifndef CCXX_THREAD_H_
50 #ifdef CCXX_NAMESPACES
94 virtual size_t onPeek(
void *buf) = 0;
101 virtual size_t onWait(
void *buf) = 0;
108 virtual size_t onPost(
void *buf) = 0;
132 inline size_t getSize(
void)
141 inline size_t getUsed(
void)
163 size_t post(
void *buf,
timeout_t timeout = 0);
171 size_t peek(
void *buf);
177 virtual bool isValid(
void);
190 char *buf, *head, *tail;
199 size_t onPeek(
void *buf);
206 size_t onWait(
void *buf);
213 size_t onPost(
void *buf);
261 typedef struct _data {
270 data_t *first, *last;
281 virtual void startQueue(
void);
288 virtual void stopQueue(
void);
293 virtual void onTimer(
void);
303 virtual void runQueue(
void *data) = 0;
313 ThreadQueue(
const char *
id,
int pri,
size_t stack = 0);
337 void post(
const void *data,
unsigned len);
343 {
return b.wait(o, t);}
347 {
return b.
post(o, t);}
354 #ifdef CCXX_NAMESPACES