29#ifndef PT_SYSTEM_QUEUE_H
30#define PT_SYSTEM_QUEUE_H
32#include <Pt/System/Api.h>
33#include <Pt/System/Mutex.h>
34#include <Pt/System/Condition.h>
55 typedef typename std::deque<T>::size_type size_type;
56 typedef typename std::deque<T>::const_reference const_reference;
62 std::deque<value_type> _queue;
64 size_type _numWaiting;
86 void put(const_reference element);
92 return _queue.empty();
131 while (_queue.empty())
132 _notEmpty.wait(lock);
135 value_type element = _queue.front();
151 while (_maxSize > 0 && _queue.size() >= _maxSize)
154 _queue.push_back(element);
157 if (_maxSize > 0 && _queue.size() < _maxSize)
166 if (_queue.size() < _maxSize)
Signal and wait synchronisation primitive.
Definition Condition.h:51
Scoped lock for a Mutex.
Definition Mutex.h:127
Mutual exclusion device.
Definition Mutex.h:73
void put(const_reference element)
Adds a element to the queue.
Definition Queue.h:147
size_type size() const
Returns the number of elements currently in queue.
Definition Queue.h:96
bool empty() const
Returns true, if the queue is empty.
Definition Queue.h:89
size_type numWaiting() const
returns the number of threads blocked in the get method.
Definition Queue.h:118
Queue()
Default Constructor.
Definition Queue.h:68
value_type get()
Returns the next element.
Definition Queue.h:126
size_type maxSize() const
returns the maximum size of the queue.
Definition Queue.h:111
System programming
Definition Connection.h:26
Core module.
Definition Allocator.h:33