|
Planeshift
|
A queue of smart pointers with locking facilties for multi-threading. More...
#include <genrefqueue.h>
Public Member Functions | |
| bool | Add (queuetype *msg) |
| This adds a message to the queue and waits if it is full. | |
| bool | AddWait (queuetype *msg, csTicks timeout=0) |
| like above, but waits to add the next message, if the queue is full be careful with this. | |
| unsigned int | Count () |
| Number of items in the queue. | |
| GenericRefQueue (unsigned int maxsize=500) | |
| csPtr< queuetype > | Get () |
| This gets the next message from the queue, it is then removed from the queue. | |
| csPtr< queuetype > | GetWait (csTicks timeout) |
| like above, but waits for the next message, if the queue is empty | |
| void | Interrupt () |
| This function interrupt the queue if it is waiting. | |
| bool | IsFull () |
| csPtr< queuetype > | Peek () |
| ~GenericRefQueue () | |
Protected Attributes | |
| CS::Threading::Condition | datacondition |
| CS::Threading::RecursiveMutex | mutex |
| refType< queuetype > * | qbuffer |
| unsigned int | qend |
| unsigned int | qsize |
| unsigned int | qstart |
A queue of smart pointers with locking facilties for multi-threading.
The objects in the queue must implement reference counting.
Definition at line 39 of file genrefqueue.h.
| GenericRefQueue< queuetype, refType >::GenericRefQueue | ( | unsigned int | maxsize = 500 | ) | [inline] |
Definition at line 42 of file genrefqueue.h.
| GenericRefQueue< queuetype, refType >::~GenericRefQueue | ( | ) | [inline] |
Definition at line 51 of file genrefqueue.h.
| bool GenericRefQueue< queuetype, refType >::Add | ( | queuetype * | msg | ) | [inline] |
This adds a message to the queue and waits if it is full.
Definition at line 82 of file genrefqueue.h.
| bool GenericRefQueue< queuetype, refType >::AddWait | ( | queuetype * | msg, |
| csTicks | timeout = 0 |
||
| ) | [inline] |
like above, but waits to add the next message, if the queue is full be careful with this.
It's easy to deadlock!
Definition at line 58 of file genrefqueue.h.
| unsigned int GenericRefQueue< queuetype, refType >::Count | ( | ) | [inline] |
Number of items in the queue.
Definition at line 207 of file genrefqueue.h.
| csPtr<queuetype> GenericRefQueue< queuetype, refType >::Get | ( | ) | [inline] |
This gets the next message from the queue, it is then removed from the queue.
Note: It returns a pointer to the message, so a null pointer indicates an error
Definition at line 142 of file genrefqueue.h.
| csPtr<queuetype> GenericRefQueue< queuetype, refType >::GetWait | ( | csTicks | timeout | ) | [inline] |
like above, but waits for the next message, if the queue is empty
Definition at line 172 of file genrefqueue.h.
| void GenericRefQueue< queuetype, refType >::Interrupt | ( | ) | [inline] |
This function interrupt the queue if it is waiting.
Definition at line 199 of file genrefqueue.h.
| bool GenericRefQueue< queuetype, refType >::IsFull | ( | ) | [inline] |
Definition at line 216 of file genrefqueue.h.
| csPtr<queuetype> GenericRefQueue< queuetype, refType >::Peek | ( | ) | [inline] |
Definition at line 111 of file genrefqueue.h.
CS::Threading::Condition GenericRefQueue< queuetype, refType >::datacondition [protected] |
Definition at line 226 of file genrefqueue.h.
CS::Threading::RecursiveMutex GenericRefQueue< queuetype, refType >::mutex [protected] |
Definition at line 225 of file genrefqueue.h.
refType<queuetype>* GenericRefQueue< queuetype, refType >::qbuffer [protected] |
Definition at line 223 of file genrefqueue.h.
unsigned int GenericRefQueue< queuetype, refType >::qend [protected] |
Definition at line 224 of file genrefqueue.h.
unsigned int GenericRefQueue< queuetype, refType >::qsize [protected] |
Definition at line 224 of file genrefqueue.h.
unsigned int GenericRefQueue< queuetype, refType >::qstart [protected] |
Definition at line 224 of file genrefqueue.h.
1.7.3