Index  Source Files  Annotated Class List  Alphabetical Class List  Class Hierarchy  Graphical Class Hierarchy 

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

Referenced by FIX::SocketMonitor::block().

00044   {
00045     Locker locker( m_mutex );
00046     if ( !m_queue.size() ) return false;
00047     value = m_queue.front();
00048     m_queue.pop();
00049     return true;
00050   }

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

Referenced by FIX::SocketMonitor::drop().

00037   {
00038     Locker locker( m_mutex );
00039     m_queue.push( value );
00040     signal();
00041   }

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

00064   {
00065     m_event.signal();
00066   }

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.

Referenced by FIX::SocketMonitor::block(), FIX::SocketConnection::processQueue(), FIX::SocketConnection::signal(), and FIX::SocketConnection::unsignal().

00053   {
00054     Locker locker( m_mutex );
00055     return m_queue.size();
00056   }

template<typename T >
void FIX::Queue< T >::wait (  )  [inline]

Definition at line 58 of file Queue.h.

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

00059   {
00060     m_event.wait();
00061   }


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 Apr 5 21:00:09 2010 for QuickFIX by doxygen 1.6.1 written by Dimitri van Heesch, © 1997-2001