![]() |
MAK RTIspy API Documentation for HLA Evolved
|
Collaboration diagram for DtMulticastSubscriptionProcessor:Public Member Functions | |
| DtMulticastSubscriptionProcessor (DtBoost::shared_ptr< DtForwarderNode > parent) | |
| Constructor. | |
| virtual | ~DtMulticastSubscriptionProcessor () |
| Destructor. | |
| bool | listenToMulticastGroup (const DtInetAddrAndPort &src, const DtNetMulticastConfigureMsg *msg) |
| Multicast Configure 'listen' message received callback. | |
| bool | dropMulticastGroup (const DtInetAddrAndPort &src, const DtNetMulticastConfigureMsg *msg) |
| Multicast Configure 'drop' message received callback. | |
| bool | processDestinationList (const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations) |
| Set forwarding destination list based on source (eg. | |
| unsigned int | maxFederates () const |
Static Public Member Functions | |
| static void | setMaxFederates (unsigned int maxFederates) |
| Set/Get size of bitmask utilized in DtAddrToIdMaskMap. | |
Protected Types | |
| typedef std::map< unsigned long, MAKRti::DtInetAddr > | DtIdToAddrMap |
| DtMulticastSubscriptionProcessor::DtIdToAddrMap defines a map indexed by federate handle associating remote federates with the multicast addresses that they are listening to on the forwarders LAN. | |
| typedef std::map < MAKRti::DtInetAddr, DtBitMask > | DtAddrToIdMaskMap |
| DtMulticastSubscriptionProcessor::DtAddrToIdMaskMap defines a map indexed by multicast addresses associating those addresses with remote federates (via a destination mask) which want the forwarder to listen on that address. | |
Protected Member Functions | |
| virtual bool | forceDropMulticastGroup (const MAKRti::DtInetAddr &addr) |
| TO DO -- fault tolerance implementation deferred. | |
| unsigned long | federateIndex (unsigned long federateHandle) const |
| DtAddrToIdMaskMap helper routine. | |
Protected Attributes | |
| DtBoost::shared_ptr < DtForwarderNode > | myParent |
| DtIdToAddrMap | myFedIdToAddressMap |
| DtAddrToIdMaskMap | myAddressToFedIdsMap |
| DtMulticastListenDropFilter < DtMulticastSubscriptionProcessor > * | myListenDropFilter |
| Filter to detect DtMcastConfigureMsgKind messages. | |
| unsigned long | myLastMulticastDropFedHdl |
| It's possible for the DtMulticastSubscriptionProcessor to process the same message twice, once for sending to the LAN, once for sending to the other forwarders. | |
| MAKRti::DtInetAddr | myLastMulticastDropAddr |
Static Protected Attributes | |
| static unsigned int | theMaxFederates = 100 |
| Count of maximum number of federates to include in DtAddrToIdMaskMap. | |
Private Member Functions | |
| DtMulticastSubscriptionProcessor () | |
| Default constructor unimplemented. | |
typedef std::map< MAKRti::DtInetAddr, DtBitMask > DtMulticastSubscriptionProcessor::DtAddrToIdMaskMap [protected] |
DtMulticastSubscriptionProcessor::DtAddrToIdMaskMap defines a map indexed by multicast addresses associating those addresses with remote federates (via a destination mask) which want the forwarder to listen on that address.
typedef std::map< unsigned long, MAKRti::DtInetAddr > DtMulticastSubscriptionProcessor::DtIdToAddrMap [protected] |
DtMulticastSubscriptionProcessor::DtIdToAddrMap defines a map indexed by federate handle associating remote federates with the multicast addresses that they are listening to on the forwarders LAN.
Default constructor unimplemented.
| DtMulticastSubscriptionProcessor::DtMulticastSubscriptionProcessor | ( | DtBoost::shared_ptr< DtForwarderNode > | parent | ) |
Constructor.
References dropMulticastGroup(), listenToMulticastGroup(), myListenDropFilter, myParent, and processDestinationList().
Destructor.
References myListenDropFilter, and myParent.
| bool DtMulticastSubscriptionProcessor::dropMulticastGroup | ( | const DtInetAddrAndPort & | src, |
| const DtNetMulticastConfigureMsg * | msg | ||
| ) |
Multicast Configure 'drop' message received callback.
References federateIndex(), DtNetMsgHeader::fedHandle, DtNetMulticastConfigureMsg::header, DtNetMulticastConfigureMsg::inetAddrFamily, DtNetMulticastConfigureMsg::multicastAddr, myAddressToFedIdsMap, myFedIdToAddressMap, myLastMulticastDropAddr, myLastMulticastDropFedHdl, and myParent.
Referenced by DtMulticastSubscriptionProcessor().
| unsigned long DtMulticastSubscriptionProcessor::federateIndex | ( | unsigned long | federateHandle | ) | const [protected] |
DtAddrToIdMaskMap helper routine.
References maxFederates().
Referenced by dropMulticastGroup(), and listenToMulticastGroup().
| bool DtMulticastSubscriptionProcessor::forceDropMulticastGroup | ( | const MAKRti::DtInetAddr & | addr | ) | [protected, virtual] |
TO DO -- fault tolerance implementation deferred.
TO DO -- fault tolerance implementation deferred Force drop of multicast group if connection(s) lost
References myAddressToFedIdsMap, and myParent.
| bool DtMulticastSubscriptionProcessor::listenToMulticastGroup | ( | const DtInetAddrAndPort & | src, |
| const DtNetMulticastConfigureMsg * | msg | ||
| ) |
Multicast Configure 'listen' message received callback.
References federateIndex(), DtNetMsgHeader::fedHandle, DtNetMulticastConfigureMsg::header, DtNetMulticastConfigureMsg::inetAddrFamily, maxFederates(), DtNetMulticastConfigureMsg::multicastAddr, myAddressToFedIdsMap, myFedIdToAddressMap, myLastMulticastDropAddr, myLastMulticastDropFedHdl, and myParent.
Referenced by DtMulticastSubscriptionProcessor().
| unsigned int DtMulticastSubscriptionProcessor::maxFederates | ( | ) | const |
References theMaxFederates.
Referenced by federateIndex(), listenToMulticastGroup(), and setMaxFederates().
| bool DtMulticastSubscriptionProcessor::processDestinationList | ( | const DtInetAddrAndPort & | src, |
| DtForwarderPort::DtAddressPortList & | destinations | ||
| ) |
Set forwarding destination list based on source (eg.
which inlet the message was received on) and forwarder network configuration
References myParent.
Referenced by DtMulticastSubscriptionProcessor().
| void DtMulticastSubscriptionProcessor::setMaxFederates | ( | unsigned int | maxFederates | ) | [static] |
Set/Get size of bitmask utilized in DtAddrToIdMaskMap.
References maxFederates(), and theMaxFederates.
Referenced by dropMulticastGroup(), forceDropMulticastGroup(), and listenToMulticastGroup().
Referenced by dropMulticastGroup(), and listenToMulticastGroup().
MAKRti::DtInetAddr DtMulticastSubscriptionProcessor::myLastMulticastDropAddr [protected] |
Referenced by dropMulticastGroup(), and listenToMulticastGroup().
unsigned long DtMulticastSubscriptionProcessor::myLastMulticastDropFedHdl [protected] |
It's possible for the DtMulticastSubscriptionProcessor to process the same message twice, once for sending to the LAN, once for sending to the other forwarders.
Keep track of the last message to prevent this.
Referenced by dropMulticastGroup(), and listenToMulticastGroup().
DtMulticastListenDropFilter<DtMulticastSubscriptionProcessor>* DtMulticastSubscriptionProcessor::myListenDropFilter [protected] |
Filter to detect DtMcastConfigureMsgKind messages.
Referenced by DtMulticastSubscriptionProcessor(), and ~DtMulticastSubscriptionProcessor().
DtBoost::shared_ptr<DtForwarderNode> DtMulticastSubscriptionProcessor::myParent [protected] |
unsigned int DtMulticastSubscriptionProcessor::theMaxFederates = 100 [static, protected] |
Count of maximum number of federates to include in DtAddrToIdMaskMap.
Referenced by maxFederates(), and setMaxFederates().