library/utility/concurrent_queue.hh

namespace scarab

The standard scarab namespace.

Functions

scarab::LOGGER(slog_cq, "concurrent_queue")
template <class XDataType>
class concurrent_queue
#include <concurrent_queue.hh>

Public Types

typedef std::deque<XDataType> queue
typedef std::unique_lock<std::mutex> cq_lock

Public Functions

concurrent_queue()
virtual ~concurrent_queue()
void push(XDataType const &a_data)
bool empty() const
bool size() const
bool try_pop(XDataType &a_popped_value)
bool wait_and_pop(XDataType &a_popped_value)
bool timed_wait_and_pop(XDataType &a_popped_value)
void interrupt()
unsigned get_timeout() const
void set_timeout(unsigned a_duration)

Private Members

queue f_queue
bool f_interrupt
std::chrono::milliseconds f_timeout
std::mutex f_mutex

Timeout duration in milliseconds.

std::condition_variable f_condition_var
struct queue_not_empty
#include <concurrent_queue.hh>

Public Functions

queue_not_empty(queue &a_queue)
bool operator()() const

Public Members

queue &f_queue