Public Member Functions | Private Attributes
FIX::Queue< T > Class Template Reference

A thread safe monitored queue. More...

#include <Queue.h>

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

List of all members.

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

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.

  {
    Locker locker( m_mutex );
    if ( !m_queue.size() ) return false;
    value = m_queue.front();
    m_queue.pop();
    return true;
  }
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().

  {
    Locker locker( m_mutex );
    m_queue.push( value );
    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().

  {
    m_event.signal();
  }
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.

  {
    Locker locker( m_mutex );
    return m_queue.size();
  }
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().

  {
    m_event.wait( s );
  }

Member Data Documentation

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().

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().

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 Mon Sep 15 2014 01:23:57 for QuickFIX by doxygen 1.7.6.1 written by Dimitri van Heesch, © 1997-2001