MAK RTIspy API Documentation for HLA 1.3
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
DtMessageThrottle Class Reference
+ Collaboration diagram for DtMessageThrottle:

Public Member Functions

 DtMessageThrottle (float transmitDelay, float transmitRate, float autoProvideDelay)
 Constructor.
virtual ~DtMessageThrottle ()
 Destructor.
virtual void activateTransmitDelay ()
 Activate a delay timer (based on RID) used by managers to control transmission of internal state Expired delays disable activation for current tick.
virtual bool delayTransmit () const
 Return true if retransmission of internal state should be delayed.
virtual bool queueMessage (DtRtiMsg const &msg, MAKRti::DtTransportType transport, MAKRti::DtInetAddr addr)
 Queue message (clone) if transmit delay is active Return true if message was queued.
virtual bool queueMessage (DtRtiMsg *msg, MAKRti::DtTransportType transport, MAKRti::DtInetAddr addr)
 Queue message if transmit delay is active Message will be deleted when processed later Return true if message was queued.
virtual void testTransmitDelay (DtConnectionMgr *connMgr)
 Test if retransmit delay time has expired.
virtual void activateAutoProvideDelay ()
 Activate a delay timer (based on RID) used by managers to control timing of autoprovide callbacks Expired delays disable activation for current tick.
virtual bool delayAutoProvide () const
 Return true if autoprovide should be delayed.
virtual void testAutoProvideDelay (DtConnectionMgr *connMgr)
 Test if autoprovide delay time has expired.
virtual void processQueuedMessages (DtConnectionMgr *connMgr)
 Process queued messages that are being sent at specified rate.
virtual void flush (DtConnectionMgr *connMgr)
 Flush any remaining messages.
virtual void clear ()
 Clear out any queued messages without sending them.

Protected Member Functions

 DtMessageThrottle ()
 disable default constructor

Protected Attributes

MAKRti::DtClock myClock
std::queue< DtDelayedMessage * > myMessageQueue
MAKRti::DtTime myTransmitTime
MAKRti::DtTime myTickTime
MAKRti::DtTime myAutoProvideTime
float myTransmitDelayInterval
float myAutoProvideDelayInterval
float myMessageRate
unsigned long myMessagePerTick
unsigned long myMessagesSent
bool myMeterMessages
bool myDelayMessages
bool myDelayTransmit
bool myDelayProvides
bool myDelayAutoProvide
bool myTransmitTick
bool myAutoProvideTick

Constructor & Destructor Documentation

DtMessageThrottle::DtMessageThrottle ( )
protected

disable default constructor

DtMessageThrottle::DtMessageThrottle ( float  transmitDelay,
float  transmitRate,
float  autoProvideDelay 
)
DtMessageThrottle::~DtMessageThrottle ( )
virtual

Destructor.

References clear().

Member Function Documentation

void DtMessageThrottle::activateAutoProvideDelay ( )
virtual

Activate a delay timer (based on RID) used by managers to control timing of autoprovide callbacks Expired delays disable activation for current tick.

References myAutoProvideDelayInterval, myAutoProvideTick, myAutoProvideTime, myClock, myDelayAutoProvide, and myDelayProvides.

Referenced by DtConnectionMgr::activateAutoProvideDelay().

void DtMessageThrottle::activateTransmitDelay ( )
virtual

Activate a delay timer (based on RID) used by managers to control transmission of internal state Expired delays disable activation for current tick.

References myClock, myDelayMessages, myDelayTransmit, myTransmitDelayInterval, myTransmitTick, and myTransmitTime.

Referenced by DtConnectionMgr::activateTransmitDelay().

void DtMessageThrottle::clear ( )
virtual
bool DtMessageThrottle::delayAutoProvide ( ) const
virtual

Return true if autoprovide should be delayed.

References myDelayAutoProvide.

Referenced by DtConnectionMgr::delayAutoProvide().

bool DtMessageThrottle::delayTransmit ( ) const
virtual

Return true if retransmission of internal state should be delayed.

References myDelayTransmit.

Referenced by DtConnectionMgr::delayTransmit().

void DtMessageThrottle::flush ( DtConnectionMgr connMgr)
virtual
void DtMessageThrottle::processQueuedMessages ( DtConnectionMgr connMgr)
virtual
bool DtMessageThrottle::queueMessage ( DtRtiMsg const &  msg,
MAKRti::DtTransportType  transport,
MAKRti::DtInetAddr  addr 
)
virtual

Queue message (clone) if transmit delay is active Return true if message was queued.

References DtRtiMsg::clone(), myMessagePerTick, myMessageQueue, myMessagesSent, myMeterMessages, and myTransmitTick.

Referenced by DtConnectionMgr::sendStampedUtilityFunction().

bool DtMessageThrottle::queueMessage ( DtRtiMsg msg,
MAKRti::DtTransportType  transport,
MAKRti::DtInetAddr  addr 
)
virtual

Queue message if transmit delay is active Message will be deleted when processed later Return true if message was queued.

References myMessagePerTick, myMessageQueue, myMessagesSent, myMeterMessages, and myTransmitTick.

void DtMessageThrottle::testAutoProvideDelay ( DtConnectionMgr connMgr)
virtual

Test if autoprovide delay time has expired.

When the delay has expired, the current tick will allow autoprovide.

References myAutoProvideTick, myAutoProvideTime, myClock, myDelayAutoProvide, and myDelayProvides.

Referenced by DtConnectionMgr::testAutoProvideDelay().

void DtMessageThrottle::testTransmitDelay ( DtConnectionMgr connMgr)
virtual

Test if retransmit delay time has expired.

If so, deactivate delay and activate message metering. When the delay has expired, the current tick will allow retransmission of internal state (see method - delayTransmit). The transmission of these messages can be metered at a give rate. If so, then any messages over the specified rate are queued to be transmitted in subsequent ticks.

References myClock, myDelayMessages, myDelayTransmit, myMessagePerTick, myMessageRate, myMessagesSent, myTickTime, myTransmitTick, myTransmitTime, and processQueuedMessages().

Referenced by DtConnectionMgr::testTransmitDelay().

Member Data Documentation

float DtMessageThrottle::myAutoProvideDelayInterval
protected
bool DtMessageThrottle::myAutoProvideTick
protected
MAKRti::DtTime DtMessageThrottle::myAutoProvideTime
protected
MAKRti::DtClock DtMessageThrottle::myClock
protected
bool DtMessageThrottle::myDelayAutoProvide
protected
bool DtMessageThrottle::myDelayMessages
protected
bool DtMessageThrottle::myDelayProvides
protected
bool DtMessageThrottle::myDelayTransmit
protected
unsigned long DtMessageThrottle::myMessagePerTick
protected
std::queue<DtDelayedMessage*> DtMessageThrottle::myMessageQueue
protected
float DtMessageThrottle::myMessageRate
protected
unsigned long DtMessageThrottle::myMessagesSent
protected
bool DtMessageThrottle::myMeterMessages
protected
MAKRti::DtTime DtMessageThrottle::myTickTime
protected

Referenced by testTransmitDelay().

float DtMessageThrottle::myTransmitDelayInterval
protected
bool DtMessageThrottle::myTransmitTick
protected
MAKRti::DtTime DtMessageThrottle::myTransmitTime
protected

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

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)