![]() |
MAK RTIspy API Documentation for HLA Evolved
|
The DtSmartForwardingProcessor class tracks Federate connections and filters the outgoing destination list for incoming messages based on their routing mask. More...
Collaboration diagram for DtSmartForwardingProcessor:Public Member Functions | |
| DtSmartForwardingProcessor (DtBoost::shared_ptr< DtForwarderNode > parent) | |
| Constructor. | |
| virtual | ~DtSmartForwardingProcessor () |
| Destructor. | |
| bool | federateJoined (const DtInetAddrAndPort &src, const DtNetJoinConfirmMsg *msg) |
| Join Msg received callback. | |
| bool | federateResigned (const DtInetAddrAndPort &src, const DtNetResignMsg *msg) |
| Resign Msg received callback. | |
| bool | processJoinResignDestinations (const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations) |
| Set the forwarding destinations for Join & Resign messages based on the source (eg. | |
| bool | filterUpdateInterDestinations (const DtInetAddrAndPort &src, caddr_t msg, DtForwarderPort::DtAddressPortList &destinations) |
| Got an incoming Update or Interaction, so set destination list based on source (eg. | |
Static Public Member Functions | |
| static int | lostConnection (const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr, void *usr) |
| Connection loss callback. | |
Protected Types | |
| typedef std::map< unsigned long, DtInetAddrAndPort > | DtIdToAddrMap |
| typedef std::map < DtInetAddrAndPort, DtBitMask > | DtAddrToIdMaskMap |
Protected Member Functions | |
| virtual int | lostConnection (const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr) |
| Connection loss callback. | |
Protected Attributes | |
| DtBoost::shared_ptr < DtForwarderNode > | myParent |
| DtIdToAddrMap | myFedIdToAddressMap |
| DtAddrToIdMaskMap | myAddressToFedIdsMap |
| DtFederateJoinResignFilter < DtSmartForwardingProcessor > * | myJoinResignFilter |
| DtUpdateInterDestinationFilter < DtSmartForwardingProcessor > * | myUpdateInterFilter |
Private Member Functions | |
| DtSmartForwardingProcessor () | |
| Default constructor unimplemented. | |
| DtSmartForwardingProcessor (const DtSmartForwardingProcessor &) | |
| Copy CTOR unimplemented. | |
| DtSmartForwardingProcessor & | operator= (const DtSmartForwardingProcessor &orig) |
| assignment operator – Not Implemented | |
The DtSmartForwardingProcessor class tracks Federate connections and filters the outgoing destination list for incoming messages based on their routing mask.
|
protected |
|
protected |
|
private |
Default constructor unimplemented.
|
private |
Copy CTOR unimplemented.
| DtSmartForwardingProcessor::DtSmartForwardingProcessor | ( | DtBoost::shared_ptr< DtForwarderNode > | parent | ) |
Constructor.
References federateJoined(), federateResigned(), filterUpdateInterDestinations(), lostConnection(), myJoinResignFilter, myParent, myUpdateInterFilter, and processJoinResignDestinations().
|
virtual |
Destructor.
References myJoinResignFilter, myParent, and myUpdateInterFilter.
| bool DtSmartForwardingProcessor::federateJoined | ( | const DtInetAddrAndPort & | src, |
| const DtNetJoinConfirmMsg * | msg | ||
| ) |
Join Msg received callback.
References DtRtiMtdDestinationList::destinationIndex(), DtForwarderIntfcLan, DtForwarderIntfcOut, DtJoinConfirmMsg::errorCode(), DtRtiMsg::federateHandle(), DtRtiMsg::fedExName(), DtNetMsgHeader::fedHandle, DtRtiMtdForwarderGroupId::get(), DtRtiMtdDestinationList::getMaxDestinations(), DtNetJoinConfirmMsg::header, myAddressToFedIdsMap, myFedIdToAddressMap, myParent, DtRtiMtdForwarderGroupId::set(), DtRtiMsg::setFederateHandle(), and DtJoinConfirmMsg::sourceID().
Referenced by DtSmartForwardingProcessor().
| bool DtSmartForwardingProcessor::federateResigned | ( | const DtInetAddrAndPort & | src, |
| const DtNetResignMsg * | msg | ||
| ) |
Resign Msg received callback.
References DtRtiMtdDestinationList::destinationIndex(), DtNetMsgHeader::fedHandle, DtNetResignMsg::header, myAddressToFedIdsMap, and myFedIdToAddressMap.
Referenced by DtSmartForwardingProcessor().
| bool DtSmartForwardingProcessor::filterUpdateInterDestinations | ( | const DtInetAddrAndPort & | src, |
| caddr_t | msg, | ||
| DtForwarderPort::DtAddressPortList & | destinations | ||
| ) |
Got an incoming Update or Interaction, so set destination list based on source (eg.
which inlet the message was received on) and forwarder network configuration, then pare down list based on bitmask in message.
References DtRtiMtdDestinationList::get(), DtRtiMtdDestinationList::getMaxDestinations(), DtBitMask::isEmpty(), and myAddressToFedIdsMap.
Referenced by DtSmartForwardingProcessor().
|
static |
Connection loss callback.
Referenced by DtSmartForwardingProcessor().
|
protectedvirtual |
Connection loss callback.
References DtBitMask::getBit(), DtBitMask::length(), myAddressToFedIdsMap, and myFedIdToAddressMap.
|
private |
assignment operator – Not Implemented
| bool DtSmartForwardingProcessor::processJoinResignDestinations | ( | const DtInetAddrAndPort & | src, |
| DtForwarderPort::DtAddressPortList & | destinations | ||
| ) |
Set the forwarding destinations for Join & Resign messages based on the source (eg.
which inlet the message was received on) and forwarder network configuration.
References myParent.
Referenced by DtSmartForwardingProcessor().
|
protected |
Referenced by federateJoined(), federateResigned(), filterUpdateInterDestinations(), and lostConnection().
|
protected |
Referenced by federateJoined(), federateResigned(), and lostConnection().
|
protected |
Referenced by DtSmartForwardingProcessor(), and ~DtSmartForwardingProcessor().
|
protected |
|
protected |
Referenced by DtSmartForwardingProcessor(), and ~DtSmartForwardingProcessor().