yat  0.12.3pre
Public Types | Public Member Functions | List of all members
theplu::yat::utility::Queue< T > Class Template Reference

Multi-thread safe queue. More...

#include <yat/utility/Queue.h>

Public Types

typedef T value_type
 Type of object stored in Queue.
 
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. More...
 
bool empty (void) const
 
void pop (T &value)
 access next element is queue More...
 
void push (const T &t)
 insert an element into container
 
size_type size (void) const
 
bool try_pop (T &value)
 
Queueoperator= (const Queue &lhs)
 assignment operator More...
 

Detailed Description

template<typename T>
class theplu::yat::utility::Queue< 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.

Note
Copy constructor and assignment are available but they are not thread safe in the current implementation.
Since
New in yat 0.11

Member Typedef Documentation

template<typename T >
typedef std::deque<T>::size_type theplu::yat::utility::Queue< T >::size_type

An unsigned integral type.

See Also
size(void)

Constructor & Destructor Documentation

template<typename T >
theplu::yat::utility::Queue< T >::Queue ( const Queue< T > &  other)
inline

Copy constructor.

Note
is not thread safe

Member Function Documentation

template<typename T >
bool theplu::yat::utility::Queue< T >::empty ( void  ) const
inline
Returns
true if container's size is zero
template<typename T >
Queue& theplu::yat::utility::Queue< T >::operator= ( const Queue< T > &  lhs)
inline

assignment operator

Note
is not thread safe
template<typename T >
void theplu::yat::utility::Queue< T >::pop ( T &  value)
inline

access next element is queue

Access the next element is queue. If container is empty, process is waiting until other process is inserting element into container.

template<typename T >
size_type theplu::yat::utility::Queue< T >::size ( void  ) const
inline
Returns
Number of elements stored in container
template<typename T >
bool theplu::yat::utility::Queue< T >::try_pop ( T &  value)
inline

If Queue is empty() do nothing and return false, else pop the element into value and return true


The documentation for this class was generated from the following file:

Generated on Mon Jun 1 2015 12:29:53 for yat by  doxygen 1.8.5