Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

ark::async_consumer_policies::MultiMessagePortQueue< T > Class Template Reference

#include <AsyncConsumerPolicies.h>

List of all members.

Public Types

typedef MessagePort< T > IQueueType

Public Member Functions

void addInputQueue (boost::shared_ptr< IQueueType > const &mport)
void removeInputQueue (boost::shared_ptr< IQueueType > const &mport)
void updateSource ()
 Called when the consumer is idle.

Protected Types

typedef std::list< boost::shared_ptr<
IQueueType > > 
PortList
typedef boost::mutex::scoped_lock scoped_lock

Protected Member Functions

PortList::iterator beginProducers ()
PortList::const_iterator beginProducers () const
PortList::iterator endProducers ()
PortList::const_iterator endProducers () const
void _removeQueueAtAddress (IQueueType *q)
IQueueType_waitForMessage (T &msg, unsigned sec, unsigned nanos)
 MultiMessagePortQueue ()
 ~MultiMessagePortQueue ()

Private Member Functions

void _doRemoval ()
 Private implementation detail to check for, and perform any pending removals.

Private Attributes

boost::mutex _mmpqMutex
PortList _pendingPorts
std::list< IQueueType * > _finishedPorts
Atomic< bool > _hasNewPorts
Atomic< bool > _removePorts
PortList _mports
Semaphore _sharedSem
PortList::iterator _lastIter

Classes

struct  _SamePtr


Detailed Description

template<typename T>
class ark::async_consumer_policies::MultiMessagePortQueue< T >

MultiMessagePortQueue Aggregates multiple changeable MessagePort shared_ptr's into one AsyncConsumer source.


Member Typedef Documentation

template<typename T>
typedef MessagePort<T> ark::async_consumer_policies::MultiMessagePortQueue< T >::IQueueType
 

template<typename T>
typedef std::list<boost::shared_ptr<IQueueType> > ark::async_consumer_policies::MultiMessagePortQueue< T >::PortList [protected]
 

template<typename T>
typedef boost::mutex::scoped_lock ark::async_consumer_policies::MultiMessagePortQueue< T >::scoped_lock [protected]
 

Reimplemented in ark::AsyncConsumer< MemoryMessage, async_consumer_policies::MultiMessagePortQueue >.


Constructor & Destructor Documentation

template<typename T>
ark::async_consumer_policies::MultiMessagePortQueue< T >::MultiMessagePortQueue  )  [inline, protected]
 

template<typename T>
ark::async_consumer_policies::MultiMessagePortQueue< T >::~MultiMessagePortQueue  )  [inline, protected]
 


Member Function Documentation

template<typename T>
void ark::async_consumer_policies::MultiMessagePortQueue< T >::_doRemoval  )  [inline, private]
 

Private implementation detail to check for, and perform any pending removals.

template<typename T>
void ark::async_consumer_policies::MultiMessagePortQueue< T >::_removeQueueAtAddress IQueueType q  )  [inline, protected]
 

template<typename T>
IQueueType* ark::async_consumer_policies::MultiMessagePortQueue< T >::_waitForMessage T &  msg,
unsigned  sec,
unsigned  nanos
[inline, protected]
 

template<typename T>
void ark::async_consumer_policies::MultiMessagePortQueue< T >::addInputQueue boost::shared_ptr< IQueueType > const &  mport  )  [inline]
 

template<typename T>
PortList::const_iterator ark::async_consumer_policies::MultiMessagePortQueue< T >::beginProducers  )  const [inline, protected]
 

template<typename T>
PortList::iterator ark::async_consumer_policies::MultiMessagePortQueue< T >::beginProducers  )  [inline, protected]
 

template<typename T>
PortList::const_iterator ark::async_consumer_policies::MultiMessagePortQueue< T >::endProducers  )  const [inline, protected]
 

template<typename T>
PortList::iterator ark::async_consumer_policies::MultiMessagePortQueue< T >::endProducers  )  [inline, protected]
 

template<typename T>
void ark::async_consumer_policies::MultiMessagePortQueue< T >::removeInputQueue boost::shared_ptr< IQueueType > const &  mport  )  [inline]
 

template<typename T>
void ark::async_consumer_policies::MultiMessagePortQueue< T >::updateSource  )  [inline]
 

Called when the consumer is idle.


Member Data Documentation

template<typename T>
std::list<IQueueType*> ark::async_consumer_policies::MultiMessagePortQueue< T >::_finishedPorts [private]
 

template<typename T>
Atomic<bool> ark::async_consumer_policies::MultiMessagePortQueue< T >::_hasNewPorts [private]
 

template<typename T>
PortList::iterator ark::async_consumer_policies::MultiMessagePortQueue< T >::_lastIter [private]
 

template<typename T>
boost::mutex ark::async_consumer_policies::MultiMessagePortQueue< T >::_mmpqMutex [private]
 

template<typename T>
PortList ark::async_consumer_policies::MultiMessagePortQueue< T >::_mports [private]
 

template<typename T>
PortList ark::async_consumer_policies::MultiMessagePortQueue< T >::_pendingPorts [private]
 

template<typename T>
Atomic<bool> ark::async_consumer_policies::MultiMessagePortQueue< T >::_removePorts [private]
 

template<typename T>
Semaphore ark::async_consumer_policies::MultiMessagePortQueue< T >::_sharedSem [private]
 


The documentation for this class was generated from the following file:
Generated on Tue Sep 6 14:54:43 2005 for Arkonnekt Sound by  doxygen 1.4.4