97 virtual size_t onPeek(
void *buf) = 0;
193 char *buf, *head, *tail;
283 virtual void final();
345 void post(
const void *data,
unsigned len);
351 {
return b.
wait(o, t);}
355 {
return b.
post(o, t);}
362#ifdef CCXX_NAMESPACES
The buffer class represents an IPC service that is built upon a buffer of fixed capacity that can be ...
Definition buffer.h:83
size_t put(Buffer &b, void *o, timeout_t t=0)
Definition buffer.h:354
size_t peek(Buffer &b, void *o)
Definition buffer.h:358
virtual bool isValid(void)
New virtual to test if buffer is a valid object.
size_t getUsed(void)
Return the current capacity in use for the buffer.
Definition buffer.h:144
virtual size_t onPeek(void *buf)=0
Invoke derived class buffer peeking method.
size_t wait(void *buf, timeout_t timeout=0)
Let one or more threads wait for an object to become available in the buffer.
virtual size_t onPost(void *buf)=0
Invoke derived class posting of object to buffer.
virtual size_t onWait(void *buf)=0
Invoke derived class object request from buffer.
size_t post(void *buf, timeout_t timeout=0)
Post an object into the buffer and enable a waiting thread to receive it.
size_t get(Buffer &b, void *o, timeout_t t=0)
Definition buffer.h:350
static const size_t timeout
value to return when a timed operation returned with a timeout.
Definition buffer.h:118
size_t peek(void *buf)
Peek at the current content (first object) in the buffer.
size_t getSize(void)
Return the capacity of the buffer as specified at creation.
Definition buffer.h:135
virtual ~Buffer()
In derived functions, may be used to free the actual memory used to hold buffered data.
Buffer(size_t capacity)
Create a buffer object of known capacity.
A conditional variable synchcronization object for one to one and one to many signal and control even...
Definition thread.h:637
A buffer class that holds a known capacity of fixed sized objects defined during creation.
Definition buffer.h:191
FixedBuffer(size_t capacity, size_t objsize)
Create a buffer of known capacity for objects of a specified size.
FixedBuffer & operator=(const FixedBuffer &fb)
size_t onPost(void *buf)
Post an object of the appropriate size into the buffer.
virtual ~FixedBuffer()
Destroy the fixed buffer and free the memory used to store objects.
size_t onWait(void *buf)
Wait for and return a fixed object in the buffer.
FixedBuffer(const FixedBuffer &fb)
Create a copy of an existing fixed size buffer and duplicate it's contents.
size_t onPeek(void *buf)
Return the first object in the buffer.
The Mutex class is used to protect a section of code so that at any given time only a single thread c...
Definition thread.h:187
A semaphore is generally used as a synchronization object between multiple threads or to protect a li...
Definition thread.h:734
This is a generic and portable string class.
Definition string.h:81
Every thread of execution in an application is created by instantiating an object of a class derived ...
Definition thread.h:1094
Somewhat generic queue processing class to establish a producer consumer queue.
Definition buffer.h:262
void setTimer(timeout_t timeout)
Set the queue timeout.
String name
Definition buffer.h:278
virtual void startQueue(void)
Start of dequeing.
bool started
Definition buffer.h:274
virtual void onTimer(void)
A derivable method to call when the timout is expired.
virtual void stopQueue(void)
End of dequeing, we expect the queue is empty for now.
virtual ~ThreadQueue()
Destroy the queue.
data_t * first
Definition buffer.h:276
ThreadQueue(const char *id, int pri, size_t stack=0)
Create instance of our queue and give it a process priority.
timeout_t timeout
Definition buffer.h:273
virtual void runQueue(void *data)=0
Virtual callback method to handle processing of a queued data items.
void post(const void *data, unsigned len)
Put some unspecified data into this queue.
#define __EXPORT
Definition config.h:1045
int HANDLE
Definition serial.h:60
Common C++ generic string class.
struct _data * next
Definition buffer.h:268
unsigned len
Definition buffer.h:269
Synchronization and threading services.
unsigned long timeout_t
Definition thread.h:74