MAK RTIspy API Documentation for HLA Evolved
List of all members | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions
DtMulticastSubscriptionProcessor Class Reference
+ 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.

Member Typedef Documentation

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.

Constructor & Destructor Documentation

DtMulticastSubscriptionProcessor::DtMulticastSubscriptionProcessor ( )
private

Default constructor unimplemented.

DtMulticastSubscriptionProcessor::DtMulticastSubscriptionProcessor ( DtBoost::shared_ptr< DtForwarderNode parent)
DtMulticastSubscriptionProcessor::~DtMulticastSubscriptionProcessor ( )
virtual

Destructor.

References myListenDropFilter, and myParent.

Member Function Documentation

bool DtMulticastSubscriptionProcessor::dropMulticastGroup ( const DtInetAddrAndPort src,
const DtNetMulticastConfigureMsg msg 
)
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)
protectedvirtual

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 
)
unsigned int DtMulticastSubscriptionProcessor::maxFederates ( ) const
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.

Member Data Documentation

DtAddrToIdMaskMap DtMulticastSubscriptionProcessor::myAddressToFedIdsMap
protected
DtIdToAddrMap DtMulticastSubscriptionProcessor::myFedIdToAddressMap
protected
MAKRti::DtInetAddr DtMulticastSubscriptionProcessor::myLastMulticastDropAddr
protected
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
staticprotected

Count of maximum number of federates to include in DtAddrToIdMaskMap.

Referenced by maxFederates(), and setMaxFederates().


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

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)