A high-performance thread-safe blocking concurrent bounded queue. More...
#include <concurrent_queue.h>
  
 Public Types | |
| 
typedef  concurrent_bounded_queue< T, A > ::iterator  | iterator | 
| 
typedef  concurrent_bounded_queue< T, A > ::const_iterator  | const_iterator | 
  Public Types inherited from tbb::concurrent_bounded_queue< T, A > | |
| typedef T | value_type | 
| Element type in the queue.  | |
| typedef A | allocator_type | 
| Allocator type.  | |
| typedef T & | reference | 
| Reference type.  | |
| typedef const T & | const_reference | 
| Const reference type.  | |
| typedef std::ptrdiff_t | size_type | 
| Integral type for representing size of the queue.  More... | |
| typedef std::ptrdiff_t | difference_type | 
| Difference type for iterator.  | |
| 
typedef  internal::concurrent_queue_iterator < concurrent_bounded_queue, T >  | iterator | 
| 
typedef  internal::concurrent_queue_iterator < concurrent_bounded_queue, const T >  | const_iterator | 
Public Member Functions | |
| concurrent_queue (const A &a=A()) | |
| Construct empty queue.  | |
| concurrent_queue (const concurrent_queue &src, const A &a=A()) | |
| Copy constructor.  | |
| template<typename InputIterator > | |
| concurrent_queue (InputIterator b, InputIterator e, const A &a=A()) | |
| [begin,end) constructor  | |
| bool | push_if_not_full (const T &source) | 
| Enqueue an item at tail of queue if queue is not already full.  More... | |
| bool | pop_if_present (T &destination) | 
| Attempt to dequeue an item from head of queue.  More... | |
| iterator | begin () | 
| iterator | end () | 
| const_iterator | begin () const | 
| const_iterator | end () const | 
  Public Member Functions inherited from tbb::concurrent_bounded_queue< T, A > | |
| concurrent_bounded_queue (const allocator_type &a=allocator_type()) | |
| Construct empty queue.  | |
| concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type()) | |
| Copy constructor.  | |
| template<typename InputIterator > | |
| concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type()) | |
| [begin,end) constructor  | |
| ~concurrent_bounded_queue () | |
| Destroy queue.  | |
| void | push (const T &source) | 
| Enqueue an item at tail of queue.  | |
| void | pop (T &destination) | 
| Dequeue item from head of queue.  More... | |
| void | abort () | 
| Abort all pending queue operations.  | |
| bool | try_push (const T &source) | 
| Enqueue an item at tail of queue if queue is not already full.  More... | |
| bool | try_pop (T &destination) | 
| Attempt to dequeue an item from head of queue.  More... | |
| size_type | size () const | 
| Return number of pushes minus number of pops.  More... | |
| bool | empty () const | 
| Equivalent to size()<=0.  | |
| size_type | capacity () const | 
| Maximum number of allowed elements.  | |
| void | set_capacity (size_type new_capacity) | 
| Set the capacity.  More... | |
| allocator_type | get_allocator () const | 
| return allocator object  | |
| void | clear () | 
| clear the queue. not thread-safe.  | |
| iterator | unsafe_begin () | 
| iterator | unsafe_end () | 
| const_iterator | unsafe_begin () const | 
| const_iterator | unsafe_end () const | 
Friends | |
| template<typename Container , typename Value > | |
| class | internal::concurrent_queue_iterator | 
A high-performance thread-safe blocking concurrent bounded queue.
This is the pre-PPL TBB concurrent queue which support boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.
      
  | 
  inline | 
Attempt to dequeue an item from head of queue.
Does not wait for item to become available. Returns true if successful; false otherwise.
References tbb::concurrent_bounded_queue< T, A >::try_pop().
      
  | 
  inline | 
Enqueue an item at tail of queue if queue is not already full.
Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.
References tbb::concurrent_bounded_queue< T, A >::try_push().