MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
DtRtiSubscribableMessageQueue Class Reference

Implements a message queue for multiple subscribers. More...

+ Inheritance diagram for DtRtiSubscribableMessageQueue:
+ Collaboration diagram for DtRtiSubscribableMessageQueue:

Classes

struct  DtRtiBucketHeader
 DtBucketHeader is a structure found at the front of each message to keep track of the number of bytes used, fragmented message indications, the subscriber that enqueued the message, and the sender's sequence number. More...
 
struct  DtRtiQueueHeader
 DtQueueHeader exists at the front of the message queue and contains useful information about the state of the queue. More...
 
class  DtStalledSubscriber
 DtStalledSubscriber keeps track of which queue subscribers have not read a bucket as well as information about the message in the unread bucket for later comparison. More...
 

Public Member Functions

 DtRtiSubscribableMessageQueue (const MAKRti::DtString &name)
 Creates an instance of a Shared Memory Queue with the given name IMPORTANT: memory with the given name must have already been allocated somewhere, This class will only attach to it. More...
 
virtual ~DtRtiSubscribableMessageQueue ()
 
virtual int subscribe (MAKRti::DtU32 subscriberId=DtSM_INVALID_SUBSCRIBER_ID)
 Set up and subscribe to the queue. More...
 
virtual void unsubscribeSelf ()
 Unsubscribes self from the queue. More...
 
virtual void unsubscribe (MAKRti::DtU32 id)
 Unsubscribes subscriber id from the queue. More...
 
virtual bool isEmpty (int *nextSize, MAKRti::DtU32 flagsMask=DtSMQ_FETCH_DEFAULT)
 Returns true if the queue has messages no messages in it, false if there is a message in the queue. More...
 
virtual bool queueIsReliable () const
 Test if queue operates in reliable or best effort delivery mode. More...
 
virtual bool isSubscribed (MAKRti::DtU32 subscriberId) const
 Test if subscribed to queue. More...
 
virtual int subscriberCount () const
 Return the count of subscribers to the queue. More...
 
virtual bool sendMessage (const void *message, unsigned int size)
 Sends a packet at address message of size bytes to the queue. More...
 
virtual bool sendMessage (const void *message, unsigned int size, unsigned int flags, const MAKRti::DtInetAddr &destAddr=MAKRti::DtInetAddr::inaddrAny())
 
virtual void getRcvMsgTransportInfo (MAKRti::DtInetAddr *destAddr, MAKRti::DtU32 *flags)
 Returns the destination address and flags field from the next available bucket header. More...
 
virtual void getRcvMsgSenderInfo (MAKRti::DtU32 *senderId, MAKRti::DtU32 *msgSn=NULL)
 Returns the contents of the sender ID and sender seq. More...
 
virtual int waitForMessages (MAKRti::DtTime waitTime=0)
 Wait (block) for the specified time until a message can be read from the queue. More...
 
virtual int waitUntilFull (MAKRti::DtTime waitTime=0)
 Wait (block) for the specified time until the queue is full. More...
 
virtual void resetQueue (MAKRti::DtU32 numberOfBuckets, MAKRti::DtU32 payloadSize)
 Empty the queue. More...
 
virtual void setEnqueueMode (DtSmqEnqueueMode mode)
 Set the queue to operate in reliable or best effort delivery mode. More...
 
virtual void initSyncVars ()
 Initialize condition variables and mutexes used to synchronize subscribers. More...
 
virtual void clearSyncVars ()
 This clears all synchronization variables and should only be called by the queue manager. More...
 
virtual std::ostream & printDataToStream (std::ostream &str) const
 prints the state of the queue to the given stream More...
 

Static Public Member Functions

static unsigned int poolSize (MAKRti::DtU32 numberOfBuckets, MAKRti::DtU32 payloadSize)
 Used to compute the size in bytes, required for a DtSmSubscribableMessageQueue instance using numberOfBuckets with a payload size of payloadSize. More...
 

Protected Types

typedef std::list
< DtStalledSubscriber * > 
DtStalledSubscriberList
 

Protected Member Functions

virtual unsigned int maxSubscribers () const
 Report configured maximum subscriber count. More...
 
volatile DtRtiQueueHeaderqueueHeader () const
 returns a pointer to the queue header, called from CTOR More...
 
MAKRti::DtU32 queueHeaderSize () const
 report the size, in bytes, of the queue header More...
 
virtual MAKRti::DtU32 numberOfBuckets () const
 Returns the number of buckets in this queue. More...
 
virtual MAKRti::DtU32 payloadSize () const
 Returns the number of bytes available in an empty bucket payload. More...
 
virtual volatile MAKRti::DtU32 queueState () const
 returns current state indicating whether shutdown in progress More...
 
virtual volatile MAKRti::DtU32 queueFront (unsigned int sub) const
 Returns the index of the specified subscribers queue front, which is the last bucket the subscriber read from. More...
 
virtual volatile MAKRti::DtU32 queueBack () const
 Returns the back of this queue, which is the last bucket written to. More...
 
virtual volatile MAKRti::DtU32 queueBackstop () const
 Returns the backstop of this queue, which is the last bucket all subscribers have read. More...
 
virtual MAKRti::DtU32 updateFront (unsigned int sub, unsigned int val)
 Sets a new value for the specified subscriber's queue front. More...
 
virtual MAKRti::DtU32 updateBack (unsigned int val)
 Sets a new value for the queue's back. More...
 
virtual MAKRti::DtU32 updateBackstop (unsigned int val)
 Sets a new value for the queue's backstop. More...
 
virtual void setSubscribed (unsigned int sub, unsigned int val)
 Set or clear the subscriber's subscribed bit in the queue header. More...
 
virtual int setSubscriberCount (MAKRti::DtU32 val)
 Set the number of subscribers. More...
 
virtual int incrementSubscriberCount ()
 Increment the number of subscribers by one. More...
 
virtual int decrementSubscriberCount ()
 Decrement the number of subscribers by one. More...
 
virtual void setState (MAKRti::DtU32 val)
 set the queue state More...
 
virtual void lockForRead ()
 Locks the queue for a read. More...
 
virtual void unlockForRead ()
 Unlocks the queue for a read. More...
 
virtual bool stalledSubscribers (unsigned int bucketNum, unsigned int numStalled)
 Determine which subscribers are stalled and handle them. More...
 
virtual bool handleStall (unsigned int bucketNum, unsigned int sub)
 Record information about stalled subscriber. More...
 
virtual MAKRti::DtU32 bucketHeaderSize () const
 report the size, in bytes, of the bucket header More...
 
virtual MAKRti::DtU32 bucketSenderId (unsigned int bucketNum) const
 return the bucket header field values More...
 
virtual MAKRti::DtU32 bucketMsgSn (unsigned int bucketNum) const
 
virtual MAKRti::DtU32 bucketOutstandingReadCount (unsigned int bucketNum) const
 
virtual MAKRti::DtInetAddr bucketDestinationAddr (unsigned int bucketNum) const
 
virtual MAKRti::DtU32 bucketPayloadLen (unsigned int bucketNum) const
 
virtual MAKRti::DtU32 bucketPriority (unsigned int bucketNum) const
 
virtual bool bucketIsReliable (unsigned int bucketNum) const
 
virtual bool bucketIsBestEffort (unsigned int bucketNum) const
 
virtual bool bucketIsFirst (unsigned int bucketNum) const
 
virtual bool bucketIsLast (unsigned int bucketNum) const
 
virtual void setSenderId (unsigned int bucketNum, MAKRti::DtU32 sid)
 change the value of bucket header fields More...
 
virtual void setMsgSn (unsigned int bucketNum, MAKRti::DtU32 seqnum)
 
virtual void setOutstandingReadCount (unsigned int bucketNum, MAKRti::DtU32 val)
 
virtual void decrementOutstandingReadCount (unsigned int bucketNum)
 
virtual void setDestinationAddr (unsigned int bucketNum, const MAKRti::DtInetAddr &dest)
 
virtual void setPayloadLen (unsigned int bucketNum, MAKRti::DtU32 len)
 
virtual void setPriority (unsigned int bucketNum, MAKRti::DtU32 priority)
 
virtual void setReliable (unsigned int bucketNum, MAKRti::DtU32 val)
 
virtual void setBestEffort (unsigned int bucketNum, MAKRti::DtU32 val)
 
virtual void setFirst (unsigned int bucketNum, MAKRti::DtU32 val)
 
virtual void setLast (unsigned int bucketNum, MAKRti::DtU32 val)
 
virtual pthread_rwlock_t * rdWrLock ()
 For non-Win32 implementations the pthread structures in the queue header must be accessed via inheritable methods in order for derived classes to be able to define a different queue header structure. More...
 
virtual pthread_mutex_t * orcMutex ()
 
virtual pthread_cond_t * newMessageCond ()
 
virtual pthread_mutex_t * newMessageCondMutex ()
 
virtual pthread_cond_t * queueFullCond ()
 
virtual pthread_mutex_t * queueFullCondMutex ()
 

Protected Attributes

DtStalledSubscriberList myStalledSubs
 !WIN32 More...
 
MAKRti::DtClock myTimestampClock
 
MAKRti::DtIpcCondVar__rti__ * myNewMessageCond
 
MAKRti::DtIpcMutex__rti__ * myNewMessageMutex
 
MAKRti::DtIpcCondVar__rti__ * myQueueFullCond
 
MAKRti::DtIpcMutex__rti__ * myQueueFullMutex
 
unsigned int theMaxSubscribers
 The maximum number of subscribers allowed in this queue. More...
 
unsigned int theMaxStallTime
 The maximum time to permit a subscriber to be stalled, in seconds. More...
 

Private Member Functions

 DtRtiSubscribableMessageQueue (const DtRtiSubscribableMessageQueue &other)
 Copy Ctor Not Implemented – Class Not Duplicable. More...
 
DtRtiSubscribableMessageQueueoperator= (const DtRtiSubscribableMessageQueue &other)
 Assignment Operator Not Implemented – Class Not Duplicable. More...
 

Detailed Description

Implements a message queue for multiple subscribers.

This is a fixed length queue comprised of fixed length message containers. It is implemented as a circular list that will not fill up. Any subscriber which has a queue full of unread messages will be dealt with in one of two ways, depending upon whether per-subscriber asynchronous read threads are employed. If async read threads are used the queue will never fill up because the async read threads will drain the queue on behalf of the subscriber process that forked the async read thread. Otherwise the list will be temporarily closed to new messages and subscribers will create private pending queues. The queue manager will monitor the stalled subscribers and unsubscribe them after a configurable period of inactivity. Subscribers register their interest in messages merely by creating an instance of this class. Upon subscribing they are assigned a unique 32 bit ID. The exception is the queue manager, the process that creates and initializes the queue, which assigns itself ID 0. A subscriber can unsubscribe themselves at any time. Before an instance of this class can be created there must already be a shared memory pool of the correct size open. The correct size is computed using DtRtiSubscribableMessageQueue::poolSize(). Before a queue can be used the queue manager (ID 0) must call queue->reset(...); queue->initSyncVars();

Member Typedef Documentation

Constructor & Destructor Documentation

DtRtiSubscribableMessageQueue::DtRtiSubscribableMessageQueue ( const MAKRti::DtString &  name)

Creates an instance of a Shared Memory Queue with the given name IMPORTANT: memory with the given name must have already been allocated somewhere, This class will only attach to it.

The memory must be at least as big as ::poolSize(), this queue can't check.

virtual DtRtiSubscribableMessageQueue::~DtRtiSubscribableMessageQueue ( )
virtual
DtRtiSubscribableMessageQueue::DtRtiSubscribableMessageQueue ( const DtRtiSubscribableMessageQueue other)
private

Copy Ctor Not Implemented – Class Not Duplicable.

Member Function Documentation

virtual MAKRti::DtInetAddr DtRtiSubscribableMessageQueue::bucketDestinationAddr ( unsigned int  bucketNum) const
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::bucketHeaderSize ( ) const
protectedvirtual

report the size, in bytes, of the bucket header

virtual bool DtRtiSubscribableMessageQueue::bucketIsBestEffort ( unsigned int  bucketNum) const
protectedvirtual
virtual bool DtRtiSubscribableMessageQueue::bucketIsFirst ( unsigned int  bucketNum) const
protectedvirtual
virtual bool DtRtiSubscribableMessageQueue::bucketIsLast ( unsigned int  bucketNum) const
protectedvirtual
virtual bool DtRtiSubscribableMessageQueue::bucketIsReliable ( unsigned int  bucketNum) const
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::bucketMsgSn ( unsigned int  bucketNum) const
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::bucketOutstandingReadCount ( unsigned int  bucketNum) const
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::bucketPayloadLen ( unsigned int  bucketNum) const
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::bucketPriority ( unsigned int  bucketNum) const
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::bucketSenderId ( unsigned int  bucketNum) const
protectedvirtual

return the bucket header field values

virtual void DtRtiSubscribableMessageQueue::clearSyncVars ( )
virtual

This clears all synchronization variables and should only be called by the queue manager.

virtual void DtRtiSubscribableMessageQueue::decrementOutstandingReadCount ( unsigned int  bucketNum)
protectedvirtual
virtual int DtRtiSubscribableMessageQueue::decrementSubscriberCount ( )
protectedvirtual

Decrement the number of subscribers by one.

virtual void DtRtiSubscribableMessageQueue::getRcvMsgSenderInfo ( MAKRti::DtU32 *  senderId,
MAKRti::DtU32 *  msgSn = NULL 
)
virtual

Returns the contents of the sender ID and sender seq.

num fields from the next available bucket header.

virtual void DtRtiSubscribableMessageQueue::getRcvMsgTransportInfo ( MAKRti::DtInetAddr *  destAddr,
MAKRti::DtU32 *  flags 
)
virtual

Returns the destination address and flags field from the next available bucket header.

virtual bool DtRtiSubscribableMessageQueue::handleStall ( unsigned int  bucketNum,
unsigned int  sub 
)
protectedvirtual

Record information about stalled subscriber.

Unsubscribe stalled subscriber if necessary

virtual int DtRtiSubscribableMessageQueue::incrementSubscriberCount ( )
protectedvirtual

Increment the number of subscribers by one.

virtual void DtRtiSubscribableMessageQueue::initSyncVars ( )
virtual

Initialize condition variables and mutexes used to synchronize subscribers.

This should only be called after the queue is created by the queue manager.

virtual bool DtRtiSubscribableMessageQueue::isEmpty ( int *  nextSize,
MAKRti::DtU32  flagsMask = DtSMQ_FETCH_DEFAULT 
)
virtual

Returns true if the queue has messages no messages in it, false if there is a message in the queue.

If nextSize is not NULL the size of the next message is stored in that location. messages not matching the priority specifications of flagsMask are skipped.

virtual bool DtRtiSubscribableMessageQueue::isSubscribed ( MAKRti::DtU32  subscriberId) const
virtual

Test if subscribed to queue.

virtual void DtRtiSubscribableMessageQueue::lockForRead ( )
protectedvirtual

Locks the queue for a read.

virtual unsigned int DtRtiSubscribableMessageQueue::maxSubscribers ( ) const
protectedvirtual

Report configured maximum subscriber count.

virtual pthread_cond_t* DtRtiSubscribableMessageQueue::newMessageCond ( )
protectedvirtual
virtual pthread_mutex_t* DtRtiSubscribableMessageQueue::newMessageCondMutex ( )
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::numberOfBuckets ( ) const
protectedvirtual

Returns the number of buckets in this queue.

DtRtiSubscribableMessageQueue& DtRtiSubscribableMessageQueue::operator= ( const DtRtiSubscribableMessageQueue other)
private

Assignment Operator Not Implemented – Class Not Duplicable.

virtual pthread_mutex_t* DtRtiSubscribableMessageQueue::orcMutex ( )
protectedvirtual
virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::payloadSize ( ) const
protectedvirtual

Returns the number of bytes available in an empty bucket payload.

static unsigned int DtRtiSubscribableMessageQueue::poolSize ( MAKRti::DtU32  numberOfBuckets,
MAKRti::DtU32  payloadSize 
)
static

Used to compute the size in bytes, required for a DtSmSubscribableMessageQueue instance using numberOfBuckets with a payload size of payloadSize.

Each bucket is the size of the payload + the size of a bucketHeader

virtual std::ostream& DtRtiSubscribableMessageQueue::printDataToStream ( std::ostream &  str) const
virtual

prints the state of the queue to the given stream

virtual volatile MAKRti::DtU32 DtRtiSubscribableMessageQueue::queueBack ( ) const
protectedvirtual

Returns the back of this queue, which is the last bucket written to.

virtual volatile MAKRti::DtU32 DtRtiSubscribableMessageQueue::queueBackstop ( ) const
protectedvirtual

Returns the backstop of this queue, which is the last bucket all subscribers have read.

virtual volatile MAKRti::DtU32 DtRtiSubscribableMessageQueue::queueFront ( unsigned int  sub) const
protectedvirtual

Returns the index of the specified subscribers queue front, which is the last bucket the subscriber read from.

virtual pthread_cond_t* DtRtiSubscribableMessageQueue::queueFullCond ( )
protectedvirtual
virtual pthread_mutex_t* DtRtiSubscribableMessageQueue::queueFullCondMutex ( )
protectedvirtual
volatile DtRtiQueueHeader* DtRtiSubscribableMessageQueue::queueHeader ( ) const
protected

returns a pointer to the queue header, called from CTOR

MAKRti::DtU32 DtRtiSubscribableMessageQueue::queueHeaderSize ( ) const
protected

report the size, in bytes, of the queue header

virtual bool DtRtiSubscribableMessageQueue::queueIsReliable ( ) const
virtual

Test if queue operates in reliable or best effort delivery mode.

virtual volatile MAKRti::DtU32 DtRtiSubscribableMessageQueue::queueState ( ) const
protectedvirtual

returns current state indicating whether shutdown in progress

virtual pthread_rwlock_t* DtRtiSubscribableMessageQueue::rdWrLock ( )
protectedvirtual

For non-Win32 implementations the pthread structures in the queue header must be accessed via inheritable methods in order for derived classes to be able to define a different queue header structure.

virtual void DtRtiSubscribableMessageQueue::resetQueue ( MAKRti::DtU32  numberOfBuckets,
MAKRti::DtU32  payloadSize 
)
virtual

Empty the queue.

This should only be called by the queue manager, as all unread messages are lost and all subscribers are unsubscribed.

virtual bool DtRtiSubscribableMessageQueue::sendMessage ( const void *  message,
unsigned int  size 
)
virtual

Sends a packet at address message of size bytes to the queue.

If the queue is full this message will knock the oldest message off the queue. Return boolean: message was successfully enqueued?

virtual bool DtRtiSubscribableMessageQueue::sendMessage ( const void *  message,
unsigned int  size,
unsigned int  flags,
const MAKRti::DtInetAddr &  destAddr = MAKRti::DtInetAddr::inaddrAny() 
)
virtual
virtual void DtRtiSubscribableMessageQueue::setBestEffort ( unsigned int  bucketNum,
MAKRti::DtU32  val 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setDestinationAddr ( unsigned int  bucketNum,
const MAKRti::DtInetAddr &  dest 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setEnqueueMode ( DtSmqEnqueueMode  mode)
virtual

Set the queue to operate in reliable or best effort delivery mode.

This should only be called after the queue is created by the queue manager.

virtual void DtRtiSubscribableMessageQueue::setFirst ( unsigned int  bucketNum,
MAKRti::DtU32  val 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setLast ( unsigned int  bucketNum,
MAKRti::DtU32  val 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setMsgSn ( unsigned int  bucketNum,
MAKRti::DtU32  seqnum 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setOutstandingReadCount ( unsigned int  bucketNum,
MAKRti::DtU32  val 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setPayloadLen ( unsigned int  bucketNum,
MAKRti::DtU32  len 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setPriority ( unsigned int  bucketNum,
MAKRti::DtU32  priority 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setReliable ( unsigned int  bucketNum,
MAKRti::DtU32  val 
)
protectedvirtual
virtual void DtRtiSubscribableMessageQueue::setSenderId ( unsigned int  bucketNum,
MAKRti::DtU32  sid 
)
protectedvirtual

change the value of bucket header fields

virtual void DtRtiSubscribableMessageQueue::setState ( MAKRti::DtU32  val)
protectedvirtual

set the queue state

virtual void DtRtiSubscribableMessageQueue::setSubscribed ( unsigned int  sub,
unsigned int  val 
)
protectedvirtual

Set or clear the subscriber's subscribed bit in the queue header.

virtual int DtRtiSubscribableMessageQueue::setSubscriberCount ( MAKRti::DtU32  val)
protectedvirtual

Set the number of subscribers.

virtual bool DtRtiSubscribableMessageQueue::stalledSubscribers ( unsigned int  bucketNum,
unsigned int  numStalled 
)
protectedvirtual

Determine which subscribers are stalled and handle them.

virtual int DtRtiSubscribableMessageQueue::subscribe ( MAKRti::DtU32  subscriberId = DtSM_INVALID_SUBSCRIBER_ID)
virtual

Set up and subscribe to the queue.

Subscribe to the queue and set up subscriber-specific fields in the queue header. Return 0 on failure, 1 on success

virtual int DtRtiSubscribableMessageQueue::subscriberCount ( ) const
virtual

Return the count of subscribers to the queue.

virtual void DtRtiSubscribableMessageQueue::unlockForRead ( )
protectedvirtual

Unlocks the queue for a read.

virtual void DtRtiSubscribableMessageQueue::unsubscribe ( MAKRti::DtU32  id)
virtual

Unsubscribes subscriber id from the queue.

This is called by the DTOR or to clean up a stalled subscriber. It should only be called by users of this class with caution. The queue manager may unsubscribe other subscribers without clearing that subscriber objects subscriber ID, so should be done only in extreme cases. Once unsubscribed, use subscribe() to get a new subscriber ID.

virtual void DtRtiSubscribableMessageQueue::unsubscribeSelf ( )
virtual

Unsubscribes self from the queue.

This is called by the DTOR and should only be called by users of this class with caution. Unsubscribing will clear subscriber ID. The queue manager may unsubscribe other subscribers without clearing that subscriber objects subscriber ID, so should be done only in extreme cases. Once unsubscribed, use subscribe() to get a new subscriber ID.

virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::updateBack ( unsigned int  val)
protectedvirtual

Sets a new value for the queue's back.

Returns the next index, wrapping if necessary.

virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::updateBackstop ( unsigned int  val)
protectedvirtual

Sets a new value for the queue's backstop.

Returns the next index, wrapping if necessary.

virtual MAKRti::DtU32 DtRtiSubscribableMessageQueue::updateFront ( unsigned int  sub,
unsigned int  val 
)
protectedvirtual

Sets a new value for the specified subscriber's queue front.

Returns the next index, wrapping if necessary.

virtual int DtRtiSubscribableMessageQueue::waitForMessages ( MAKRti::DtTime  waitTime = 0)
virtual

Wait (block) for the specified time until a message can be read from the queue.

Return status: 0 if messages are ready, > 0 if wait expired, or < 0 if error

virtual int DtRtiSubscribableMessageQueue::waitUntilFull ( MAKRti::DtTime  waitTime = 0)
virtual

Wait (block) for the specified time until the queue is full.

Return status: 0 if queue is full, > 0 if wait expired, or < 0 if error

Member Data Documentation

MAKRti::DtIpcCondVar__rti__* DtRtiSubscribableMessageQueue::myNewMessageCond
protected
MAKRti::DtIpcMutex__rti__* DtRtiSubscribableMessageQueue::myNewMessageMutex
protected
MAKRti::DtIpcCondVar__rti__* DtRtiSubscribableMessageQueue::myQueueFullCond
protected
MAKRti::DtIpcMutex__rti__* DtRtiSubscribableMessageQueue::myQueueFullMutex
protected
DtStalledSubscriberList DtRtiSubscribableMessageQueue::myStalledSubs
protected

!WIN32

MAKRti::DtClock DtRtiSubscribableMessageQueue::myTimestampClock
protected
unsigned int DtRtiSubscribableMessageQueue::theMaxStallTime
protected

The maximum time to permit a subscriber to be stalled, in seconds.

static const unsigned int theMaxStallTime = 5;

unsigned int DtRtiSubscribableMessageQueue::theMaxSubscribers
protected

The maximum number of subscribers allowed in this queue.

TO DO – DAA workaround for MSVC6 bug ID #241569 A bug in MSVC++6 prevents initializing a static const member within a class declaration. It must be initialized outside the class. The bug is fixed in MSVC7, so when support for MSVC6 is dropped we can do away with this kludgy workaround static const unsigned int theMaxSubscribers = 16384;


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

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)