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.

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 }
std::queue< T > m_queue
Definition Queue.h:71
Mutex m_mutex
Definition Queue.h:70

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

◆ push()

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

Definition at line 36 of file Queue.h.

37 {
38 Locker locker( m_mutex );
39 m_queue.push( value );
40 signal();
41 }
void signal()
Definition Queue.h:63

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

◆ signal()

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

Definition at line 63 of file Queue.h.

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

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

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

◆ size()

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

Definition at line 52 of file Queue.h.

53 {
54 Locker locker( m_mutex );
55 return m_queue.size();
56 }

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

◆ wait()

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

Definition at line 58 of file Queue.h.

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

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

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 Sat Feb 3 2024 04:23:15 for QuickFIX by doxygen 1.9.8 written by Dimitri van Heesch, © 1997-2001