yat
0.20.3pre
|
Multi-thread safe priority queue. More...
#include <yat/utility/PriorityQueue.h>
Public Types | |
typedef std::multiset< T, Compare > ::value_type | value_type |
Type of object stored. | |
typedef std::multiset< T, Compare > ::size_type | size_type |
Public Member Functions | |
PriorityQueue (void) | |
Create a PriorityQueue with no elements. | |
PriorityQueue (const Compare &comp) | |
Create a PriorityQueue with comp as Compare functor. | |
PriorityQueue (const PriorityQueue &other) | |
Copy constructor. | |
PriorityQueue & | operator= (const PriorityQueue &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::multiset< T, Compare > | q_ |
data | |
Friends | |
class | detail::BasicQueue< PriorityQueue< T, Compare >, T, std::multiset< T, Compare > > |
Multi-thread safe priority queue.
This class provides a multi-thread safe priority_queue. The PriorityQueue is typically shared by multiple threads such that some threads push elements and some pop elements. The PriorityQueue is a specifically designed so you can only access the greatest element similar tostd::priority_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