yat
0.20.3pre
|
Multi-thread safe queue. More...
#include <yat/utility/Queue.h>
Public Types | |
typedef std::deque< T > ::value_type | value_type |
Type of object stored. | |
typedef std::deque< T > ::size_type | size_type |
Public Member Functions | |
Queue (void) | |
Create a Queue with no elements. | |
Queue (const Queue &other) | |
Copy constructor. | |
Queue & | operator= (const Queue &lhs) |
assignment operator | |
size_t | capacity (void) |
void | capacity (size_t c) |
change maximal number of element stored in container More... | |
void | clear (void) |
clear queue More... | |
bool | empty (void) const |
void | pop (T &value) |
access next element in queue More... | |
void | push (const T &t) |
insert an element into container More... | |
void | push (T &&t) |
insert an element into container More... | |
size_type | size (void) const |
bool | try_pop (T &value) |
bool | try_push (T &value) |
bool | try_push (T &&value) |
Protected Member Functions | |
void | assign (const BasicQueue &other) |
Protected Attributes | |
std::deque< T > | q_ |
data | |
Friends | |
class | detail::BasicQueue< Queue< T >, T, std::deque< T > > |
Multi-thread safe queue.
This class provides a multi-thread safe queue. The Queue is typically shared by multiple threads such that some threads push elements and some pop elements. The Queue is a "first in first out" container and holds the same functionality as the similar std::queue. The difference is that Queue is multi-thread safe, in other words, when one thread access the Queue, other threads are locked out from access so that only one thread touches the Queue at a time and its behaviour is well defined. In a single-thread application there is no point in using the class as std::queue should be prefereble.
|
inherited |
An unsigned integral type.
|
inlineprotectedinherited |
assign other to this
|
inlineinherited |
|
inlineinherited |
change maximal number of element stored in container
|
inlineinherited |
clear queue
|
inlineinherited |
true
if container's size is zero
|
inlineinherited |
access next element in queue
Access the next element is queue. If container is empty, process is waiting until other process is inserting element into container.
|
inlineinherited |
insert an element into container
If size of queue is equal (or greater) to its capacity, the function is waiting until this is not the case.
|
inlineinherited |
insert an element into container
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
If Queue size is less than capacity push value and return true
; otherwise return false
|
inlineinherited |
If Queue size is less than capacity push value and return true
; otherwise return false