MAK RTIspy API Documentation for HLA 1516
Public Member Functions | Protected Member Functions | Protected Attributes
DtMessageThrottle Class Reference
+ Collaboration diagram for DtMessageThrottle:

List of all members.

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

disable default constructor

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

Destructor.

References clear().


Member Function Documentation

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

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]

Return true if autoprovide should be delayed.

References myDelayAutoProvide.

Referenced by DtConnectionMgr::delayAutoProvide().

Return true if retransmission of internal state should be delayed.

References myDelayTransmit.

Referenced by DtConnectionMgr::delayTransmit().

void DtMessageThrottle::flush ( 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.

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

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

MAKRti::DtTime DtMessageThrottle::myAutoProvideTime [protected]
MAKRti::DtClock DtMessageThrottle::myClock [protected]
unsigned long DtMessageThrottle::myMessagePerTick [protected]
unsigned long DtMessageThrottle::myMessagesSent [protected]
MAKRti::DtTime DtMessageThrottle::myTickTime [protected]

Referenced by testTransmitDelay().

MAKRti::DtTime DtMessageThrottle::myTransmitTime [protected]

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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)