ddc
List of all members
ddcThreadQueue< T > Class Template Reference

generic thread-safe queue template class should use POD or pointer types for message-type T More...

#include <ddcThreadQueue.h>

Inheritance diagram for ddcThreadQueue< T >:
Inheritance graph
[legend]

Public Types

Types
typedef T ItemT
 message item type More...
 

Public Member Functions

API: Constructors etc.
 ddcThreadQueue (size_t max_size=256)
 
 ~ddcThreadQueue ()
 
API: Queue operations
void add (T item)
 
remove ()
 
size_t size () const
 

Public Attributes

Data
std::list< T > m_queue
 underlying message queue More...
 
size_t m_max_size
 maximum number of enqueued messages (default=DDC_DEFAULT_THREAD_QUEUE_SIZE: unlimited) More...
 
pthread_mutex_t m_mutex
 pthread mutex for locking queue access More...
 
pthread_cond_t m_condv_added
 pthread condition variable for signalling queue insertions More...
 
pthread_cond_t m_condv_removed
 pthread condition variable for signalling queue removals More...
 

Detailed Description

template<typename T>
class ddcThreadQueue< T >

generic thread-safe queue template class should use POD or pointer types for message-type T

Member Typedef Documentation

◆ ItemT

template<typename T>
typedef T ddcThreadQueue< T >::ItemT

message item type

Constructor & Destructor Documentation

◆ ddcThreadQueue()

template<typename T>
ddcThreadQueue< T >::ddcThreadQueue ( size_t  max_size = 256)
inline

Default constructor

◆ ~ddcThreadQueue()

template<typename T>
ddcThreadQueue< T >::~ddcThreadQueue ( )
inline

Default destructor

Member Function Documentation

◆ add()

template<typename T>
void ddcThreadQueue< T >::add ( item)
inline

add an item to the end of the queue

  • handles queue locking
  • waits on m_condv_removed if queue is already at maximum size
  • signals m_condv_added after inserting the new item

Referenced by CDDCServer::HandleClientConnection().

Here is the caller graph for this function:

◆ remove()

template<typename T>
T ddcThreadQueue< T >::remove ( )
inline

remove an item from the front of the queue

  • handles queue locking
  • waits on m_condv_added if queue is empty
  • signals m_condv_removed after removing an item

Referenced by CDDCServerThread::run().

Here is the caller graph for this function:

◆ size()

template<typename T>
size_t ddcThreadQueue< T >::size ( ) const
inline

convenience wrapper for checking current queue size

  • handles queue locking

Member Data Documentation

◆ m_queue

template<typename T>
std::list<T> ddcThreadQueue< T >::m_queue

underlying message queue

◆ m_max_size

template<typename T>
size_t ddcThreadQueue< T >::m_max_size

maximum number of enqueued messages (default=DDC_DEFAULT_THREAD_QUEUE_SIZE: unlimited)

Referenced by ddcThreadQueue< int >::add().

◆ m_mutex

template<typename T>
pthread_mutex_t ddcThreadQueue< T >::m_mutex

pthread mutex for locking queue access

◆ m_condv_added

template<typename T>
pthread_cond_t ddcThreadQueue< T >::m_condv_added

pthread condition variable for signalling queue insertions

◆ m_condv_removed

template<typename T>
pthread_cond_t ddcThreadQueue< T >::m_condv_removed

pthread condition variable for signalling queue removals


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