![]() |
MAK RTIspy API Documentation for HLA 1.3
|
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 |
| DtMessageThrottle::DtMessageThrottle | ( | ) | [protected] |
disable default constructor
| DtMessageThrottle::DtMessageThrottle | ( | float | transmitDelay, |
| float | transmitRate, | ||
| float | autoProvideDelay | ||
| ) |
Constructor.
References myAutoProvideDelayInterval, myDelayMessages, myDelayProvides, myMessageRate, myMeterMessages, and myTransmitDelayInterval.
| DtMessageThrottle::~DtMessageThrottle | ( | ) | [virtual] |
Destructor.
References clear().
| 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] |
Clear out any queued messages without sending them.
References myMessageQueue, myMessagesSent, myMeterMessages, and NULL.
Referenced by DtSmConnectionMgr::connectFederation(), DtConnectionMgr::connectFederation(), DtSmConnectionMgr::disconnectFederation(), DtConnectionMgr::disconnectFederation(), DtConnectionMgr::~DtConnectionMgr(), and ~DtMessageThrottle().
| 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] |
Flush any remaining messages.
References DtDelayedMessage::addr, DtDelayedMessage::msg, myMessageQueue, myMessagesSent, myMeterMessages, NULL, DtConnectionMgr::send(), and DtDelayedMessage::transport.
Referenced by DtConnectionMgr::flushQueuedMessages().
| void DtMessageThrottle::processQueuedMessages | ( | DtConnectionMgr * | connMgr | ) | [virtual] |
Process queued messages that are being sent at specified rate.
References DtDelayedMessage::addr, DtDelayedMessage::msg, myMessagePerTick, myMessageQueue, myMessagesSent, myMeterMessages, DtConnectionMgr::send(), and DtDelayedMessage::transport.
Referenced by DtConnectionMgr::processQueuedMessages(), and testTransmitDelay().
| 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().
float DtMessageThrottle::myAutoProvideDelayInterval [protected] |
Referenced by activateAutoProvideDelay(), and DtMessageThrottle().
bool DtMessageThrottle::myAutoProvideTick [protected] |
Referenced by activateAutoProvideDelay(), and testAutoProvideDelay().
MAKRti::DtTime DtMessageThrottle::myAutoProvideTime [protected] |
Referenced by activateAutoProvideDelay(), and testAutoProvideDelay().
MAKRti::DtClock DtMessageThrottle::myClock [protected] |
Referenced by activateAutoProvideDelay(), activateTransmitDelay(), testAutoProvideDelay(), and testTransmitDelay().
bool DtMessageThrottle::myDelayAutoProvide [protected] |
Referenced by activateAutoProvideDelay(), delayAutoProvide(), and testAutoProvideDelay().
bool DtMessageThrottle::myDelayMessages [protected] |
Referenced by activateTransmitDelay(), DtMessageThrottle(), and testTransmitDelay().
bool DtMessageThrottle::myDelayProvides [protected] |
Referenced by activateAutoProvideDelay(), DtMessageThrottle(), and testAutoProvideDelay().
bool DtMessageThrottle::myDelayTransmit [protected] |
Referenced by activateTransmitDelay(), delayTransmit(), and testTransmitDelay().
unsigned long DtMessageThrottle::myMessagePerTick [protected] |
Referenced by processQueuedMessages(), queueMessage(), and testTransmitDelay().
std::queue<DtDelayedMessage*> DtMessageThrottle::myMessageQueue [protected] |
Referenced by clear(), flush(), processQueuedMessages(), and queueMessage().
float DtMessageThrottle::myMessageRate [protected] |
Referenced by DtMessageThrottle(), and testTransmitDelay().
unsigned long DtMessageThrottle::myMessagesSent [protected] |
Referenced by clear(), flush(), processQueuedMessages(), queueMessage(), and testTransmitDelay().
bool DtMessageThrottle::myMeterMessages [protected] |
Referenced by clear(), DtMessageThrottle(), flush(), processQueuedMessages(), and queueMessage().
MAKRti::DtTime DtMessageThrottle::myTickTime [protected] |
Referenced by testTransmitDelay().
float DtMessageThrottle::myTransmitDelayInterval [protected] |
Referenced by activateTransmitDelay(), and DtMessageThrottle().
bool DtMessageThrottle::myTransmitTick [protected] |
Referenced by activateTransmitDelay(), queueMessage(), and testTransmitDelay().
MAKRti::DtTime DtMessageThrottle::myTransmitTime [protected] |
Referenced by activateTransmitDelay(), and testTransmitDelay().