#include <buffer.h>
Inheritance diagram for ost::ThreadQueue:

Public Member Functions | |
| ThreadQueue (const char *id, int pri, size_t stack=0) | |
| Create instance of our queue and give it a process priority. | |
| ~ThreadQueue () | |
| Destroy the queue. | |
| void | post (const void *data, unsigned len) |
| Put some unspecified data into this queue. | |
Protected Member Functions | |
| virtual void | startQueue (void) |
| Start of dequeing. | |
| virtual void | stopQueue (void) |
| End of dequeing, we expect the queue is empty for now. | |
| virtual void | runQueue (void *data)=0 |
| Virtual callback method to handle processing of a queued data items. | |
Protected Attributes | |
| const char * | name |
Classes | |
| struct | _data |
This may be used to buffer cdr records, or for other purposes where an in-memory queue is needed for rapid posting. This class is derived from Mutex and maintains a linked list. A thread is used to dequeue data and pass it to a callback method that is used in place of "run" for each item present on the queue. The conditional is used to signal the run thread when new data is posted.
| ost::ThreadQueue::ThreadQueue | ( | const char * | id, | |
| int | pri, | |||
| size_t | stack = 0 | |||
| ) |
Create instance of our queue and give it a process priority.
| id | queue ID. | |
| pri | process priority. | |
| stack | stack size. |
| ost::ThreadQueue::~ThreadQueue | ( | ) |
Destroy the queue.
| virtual void ost::ThreadQueue::startQueue | ( | void | ) | [protected, virtual] |
Start of dequeing.
Maybe we need to connect a database or something, so we have a virtual...
| virtual void ost::ThreadQueue::stopQueue | ( | void | ) | [protected, virtual] |
End of dequeing, we expect the queue is empty for now.
Maybe we need to disconnect a database or something, so we have another virtual.
| virtual void ost::ThreadQueue::runQueue | ( | void * | data | ) | [protected, pure virtual] |
Virtual callback method to handle processing of a queued data items.
After the item is processed, it is deleted from memory. We can call multiple instances of runQueue in order if multiple items are waiting.
| data | item being dequed. |
| void ost::ThreadQueue::post | ( | const void * | data, | |
| unsigned | len | |||
| ) |
Put some unspecified data into this queue.
A new qd structure is created and sized to contain a copy of the actual content.
| data | pointer to data. | |
| len | size of data. |
const char* ost::ThreadQueue::name [protected] |
1.5.1