An FIFO workpile queue.
More...
#include <libppbase/base/WorkPile.h>
List of all members.
Public Types |
typedef std::deque< T > | DEQUE |
| deque shortcut type
|
Public Member Functions |
| WorkPile (unsigned wmlow=0, unsigned wmhigh=0) |
| Constructor.
|
| ~WorkPile () |
| Destructor.
|
T | dequeue () |
| Dequeues object.
|
std::list< T > | dequeue (unsigned count) |
| Dequeues a list of objects.
|
T | dequeue (Thread *worker) |
| Dequeues object.
|
size_t | enqueue (T t, bool block=true) |
| Enqueues object.
|
unsigned | getWorkerCount () |
| Gets the number of available workers.
|
size_t | size () |
| Returns the number of objects in this queue.
|
Detailed Description
template<class T>
class base::WorkPile< T >
An FIFO workpile queue.
- Author:
- Christoph Schwarz
- Version:
- $Id: WorkPile.h 21 2010-09-05 04:18:17Z cschwarz1 $
Constructor & Destructor Documentation
Constructor.
if wmlow > 0 and wmhigh == 0 then wmhigh = wmlow
- Parameters:
-
| wmlow | low watermark: writers are freed when number of items drops below this limit |
| wmhigh | high watermark: maximum number of items in the queue, putting more items causes writers to block |
Member Function Documentation
Dequeues object.
- Returns:
- next item
- Exceptions:
-
Dequeues a list of objects.
- Parameters:
-
| count | maximum number of objects to dequeue, 0 = unlimited |
- Returns:
- list of available objects, may be empty if there are none
Dequeues object.
- Parameters:
-
| worker | calling thread that might wait for a new item if none is available |
- Returns:
- the next item
- Exceptions:
-
| IOException | if the thread has been interrupted (e.g. received a cancellation request) |
template<class T>
size_t base::WorkPile< T >::enqueue |
( |
T |
t, |
|
|
bool |
block = true | |
|
) |
| | [inline] |
Enqueues object.
- Parameters:
-
| t | the object to enqueue |
| block | flag: block if high watermark is exceeded |
- Returns:
- new number of objects in the queue
Gets the number of available workers.
- Returns:
- number of available worker threads
The documentation for this class was generated from the following file: