Scarab  v3.2.0
Project 8 C++ Utility Library
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
concurrent_queue< XDataType > Class Template Reference

#include <concurrent_queue.hh>

Classes

struct  queue_not_empty
 

Public Types

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

Public Member Functions

 concurrent_queue ()
 
virtual ~concurrent_queue ()
 
void push (XDataType const &a_data)
 
bool empty () const
 
unsigned 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 Attributes

queue f_queue
 
bool f_interrupt
 
std::chrono::milliseconds f_timeout
 
std::mutex f_mutex
 Timeout duration in milliseconds. More...
 
std::condition_variable f_condition_var
 

Detailed Description

template<class XDataType>
class scarab::concurrent_queue< XDataType >

Definition at line 30 of file concurrent_queue.hh.

Member Typedef Documentation

◆ cq_lock

typedef std::unique_lock< std::mutex > cq_lock

Definition at line 47 of file concurrent_queue.hh.

◆ queue

typedef std::deque< XDataType > queue

Definition at line 33 of file concurrent_queue.hh.

Constructor & Destructor Documentation

◆ concurrent_queue()

concurrent_queue ( )
inline

Definition at line 50 of file concurrent_queue.hh.

◆ ~concurrent_queue()

virtual ~concurrent_queue ( )
inlinevirtual

Definition at line 59 of file concurrent_queue.hh.

Member Function Documentation

◆ empty()

bool empty ( ) const
inline

Definition at line 85 of file concurrent_queue.hh.

◆ get_timeout()

unsigned get_timeout ( ) const
inline

Definition at line 157 of file concurrent_queue.hh.

◆ interrupt()

void interrupt ( )
inline

Definition at line 150 of file concurrent_queue.hh.

◆ push()

void push ( XDataType const &  a_data)
inline

Definition at line 74 of file concurrent_queue.hh.

◆ set_timeout()

void set_timeout ( unsigned  a_duration)
inline

Definition at line 162 of file concurrent_queue.hh.

◆ size()

unsigned size ( ) const
inline

Definition at line 91 of file concurrent_queue.hh.

◆ timed_wait_and_pop()

bool timed_wait_and_pop ( XDataType &  a_popped_value)
inline

Definition at line 128 of file concurrent_queue.hh.

◆ try_pop()

bool try_pop ( XDataType &  a_popped_value)
inline

Definition at line 97 of file concurrent_queue.hh.

◆ wait_and_pop()

bool wait_and_pop ( XDataType &  a_popped_value)
inline

Definition at line 111 of file concurrent_queue.hh.

Member Data Documentation

◆ f_condition_var

std::condition_variable f_condition_var
private

Definition at line 71 of file concurrent_queue.hh.

◆ f_interrupt

bool f_interrupt
private

Definition at line 66 of file concurrent_queue.hh.

◆ f_mutex

std::mutex f_mutex
mutableprivate

Timeout duration in milliseconds.

Definition at line 70 of file concurrent_queue.hh.

◆ f_queue

queue f_queue
private

Definition at line 65 of file concurrent_queue.hh.

◆ f_timeout

std::chrono::milliseconds f_timeout
private

Definition at line 68 of file concurrent_queue.hh.


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