Public Member Functions | Private Attributes | List of all members
FIX::Queue< T > Class Template Reference

A thread safe monitored queue. More...

#include <Queue.h>

Collaboration diagram for FIX::Queue< T >:
Collaboration graph
[legend]

Public Member Functions

void push (const T &value)
 
bool pop (T &value)
 
int size ()
 
void wait (double s)
 
void signal ()
 

Private Attributes

Event m_event
 
Mutex m_mutex
 
std::queue< T > m_queue
 

Detailed Description

template<typename T>
class FIX::Queue< T >

A thread safe monitored queue.

Definition at line 33 of file Queue.h.

Member Function Documentation

◆ pop()

template<typename T >
bool FIX::Queue< T >::pop ( T &  value)
inline

Definition at line 43 of file Queue.h.

References FIX::Queue< T >::m_mutex, and FIX::Queue< T >::m_queue.

44  {
45  Locker locker( m_mutex );
46  if ( !m_queue.size() ) return false;
47  value = m_queue.front();
48  m_queue.pop();
49  return true;
50  }
Mutex m_mutex
Definition: Queue.h:70
std::queue< T > m_queue
Definition: Queue.h:71

◆ push()

template<typename T >
void FIX::Queue< T >::push ( const T &  value)
inline

Definition at line 36 of file Queue.h.

References FIX::Queue< T >::m_mutex, FIX::Queue< T >::m_queue, and FIX::Queue< T >::signal().

37  {
38  Locker locker( m_mutex );
39  m_queue.push( value );
40  signal();
41  }
void signal()
Definition: Queue.h:63
Mutex m_mutex
Definition: Queue.h:70
std::queue< T > m_queue
Definition: Queue.h:71

◆ signal()

template<typename T >
void FIX::Queue< T >::signal ( )
inline

Definition at line 63 of file Queue.h.

References FIX::Queue< T >::m_event, and FIX::Event::signal().

Referenced by FIX::Queue< T >::push().

64  {
65  m_event.signal();
66  }
Event m_event
Definition: Queue.h:69
void signal()
Definition: Event.h:59

◆ size()

template<typename T >
int FIX::Queue< T >::size ( )
inline

Definition at line 52 of file Queue.h.

References FIX::Queue< T >::m_mutex, and FIX::Queue< T >::m_queue.

53  {
54  Locker locker( m_mutex );
55  return m_queue.size();
56  }
Mutex m_mutex
Definition: Queue.h:70
std::queue< T > m_queue
Definition: Queue.h:71

◆ wait()

template<typename T >
void FIX::Queue< T >::wait ( double  s)
inline

Definition at line 58 of file Queue.h.

References FIX::Queue< T >::m_event, and FIX::Event::wait().

59  {
60  m_event.wait( s );
61  }
Event m_event
Definition: Queue.h:69
void wait(double s)
Definition: Event.h:70

Member Data Documentation

◆ m_event

template<typename T >
Event FIX::Queue< T >::m_event
private

Definition at line 69 of file Queue.h.

Referenced by FIX::Queue< T >::signal(), and FIX::Queue< T >::wait().

◆ m_mutex

template<typename T >
Mutex FIX::Queue< T >::m_mutex
private

Definition at line 70 of file Queue.h.

Referenced by FIX::Queue< T >::pop(), FIX::Queue< T >::push(), and FIX::Queue< T >::size().

◆ m_queue

template<typename T >
std::queue< T > FIX::Queue< T >::m_queue
private

Definition at line 71 of file Queue.h.

Referenced by FIX::Queue< T >::pop(), FIX::Queue< T >::push(), and FIX::Queue< T >::size().


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

Generated on Wed Aug 28 2019 14:13:46 for QuickFIX by doxygen 1.8.13 written by Dimitri van Heesch, © 1997-2001