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
DtRtiShmQNetMgr Class Reference

The DtRtiShmQNetMgr class implements a network I/O socket manager to filter and exchange messages between a shared memory queue manager and the network. More...

+ Inheritance diagram for DtRtiShmQNetMgr:
+ Collaboration diagram for DtRtiShmQNetMgr:

Public Member Functions

virtual ~DtRtiShmQNetMgr ()
 Destructor.
virtual int init (DtRIDParameters *params)
 Initialize the RTI's exercise parameters and connections Users who wish to override the MAK RTI's network connections should override this function or initConnections()
virtual void setSmConnMgr (DtSmConnectionMgr *smConnMgr)
 Allow the DtRtiShmQNetMgr to access the shared memory connection manager directly to simplify forwarding messages.
virtual void enrollSmFederate (DtFederateHandle federateHandle, int fedExHandle)
 Maintanence methods for Federate to FedEx handle map.
virtual void dropSmFederate (DtFederateHandle federateHandle, int fedExHandle)
- Public Member Functions inherited from DtAsyncConnectionMgr
virtual ~DtAsyncConnectionMgr ()
virtual void setFederateMgr (DtFederateMgr *fedMgrPtr)
 Set the federate manager.
virtual void shutdown ()
 Request shutdown of communication activities.
virtual bool isAsynchronous ()
 return if in asynchronous mode
virtual void disconnectFederation ()
 The LRC disassociates its connections from the federation.
virtual void connectFederation (DtLogicalTimeFactory *logicalTimeFactoryPtr, MAKRti::DtString fedExName, DtFederateHandle fedHandle, int fedExHandle)
 The LRC associates its federation information with its network connections.
virtual void queueMsg (DtRtiMsg *msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
 method uses a mutex to lock the send queue while adding a a packet to the queue
virtual int send (const DtRtiMsg &msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
 Send a message.
virtual int sendAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
 Send a message and delete the message after it has been sent Retraction record of timestamped messages must made here.
virtual bool tick ()
 Process the connections for sychronous IO or callbacks.
virtual bool processConnections ()
 Check all the connections and process any incomming messages Return boolean: message was received? (i.e.
virtual DtRtiMsggetMessage ()
 Get a message if one exists Message must be destroyed by caller.
virtual DtNetReadStatus handleMsg (DtRtiMsg &msg)
 Handle this message by either processing it or queueing it if save pending.
virtual bool flush ()
 Does nothing in Async.
virtual void workerThread ()
 worker thread (called by run)
virtual bool wait (MAKRti::DtTime periodInSeconds, bool unlockWhileWaiting=false)
 Wait for data to be ready or the given period of time to expire Return boolean: data is ready for reading?
virtual int readFileDescriptor (RTI::TransportType transport)
 Returns a file descriptor on which data will be present for the given transport type whenever there is incoming data waiting to be read.
virtual int waitEvent ()
 return the waiting handle
virtual void signalReceiveEvent ()
 Signal the receive event Used by IO thread to signal federate thread.
virtual void clearReceiveEvent ()
 Clear receive event Used by federate thread to clear signal.
virtual void signalSendEvent ()
 Signal the send event Used by federate thread to signal IO thread.
virtual void clearSendEvent ()
 Clear send event Used by IO thread to clear signal.
virtual void yield ()
 Yield processing to allow more data to arrive.
- Public Member Functions inherited from DtConnectionMgr
virtual ~DtConnectionMgr ()
 Destructor.
virtual void initParams (DtRIDParameters *params)
 Initialize the parameters used by the connection manager.
virtual void enableSmartForwarding (bool enableSmartForwarding, bool enableInternalMessageSmartForwarding, int maxNumFederates)
 Enables or disables smart forwarding.
virtual DtRIDParametersparams ()
 Get a pointer to the RID parameters.
virtual bool isShuttingDown ()
 Shutdown acknowledged.
virtual int sendStamped (const DtRtiMsg &msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &=MAKRti::DtInetAddr::inaddrAny())
 Send a message stamped with fedEx name and federate ID Retraction record of timestamped messages made here.
virtual int sendStampedAnonymous (const DtRtiMsg &msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
 Send a message stamped with fedEx name, but not federate ID Does not make retraction record of sent messages.
virtual int sendDirectedAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, DtFederateHandle fedHandle, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
 Send and delete a message stamped with federate ID These messages are sent to a specific entity by using internal smart forwarding if enabled.
virtual int sendStampedAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &=MAKRti::DtInetAddr::inaddrAny())
 Send and delete a message stamped with fedEx name and federate ID Retraction record of timestamped messages made here.
virtual void sendLoopback (DtRtiMsg *msg)
 Send a message to be processed by this federate.
virtual bool drainBacklog (MAKRti::DtTime timeout=0.0)
 Attempts to flush backlogged messages repeatedly until either all messages are sent or the timeout expires.
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 void testTransmitDelay ()
 Test if retransmit delay time has expired.
virtual void activateAutoProvideDelay ()
 Activate a delay timer (based on RID) used by managers to control timing for autoprovide callbacks Expired delays disable activation for current tick.
virtual bool delayAutoProvide () const
 Return true if autoprovides should be delayed.
bool allProvideUpdateRequestsDelayed () const
 Return true if all provide update calls should be delayed (not just auto provide).
virtual void testAutoProvideDelay ()
 Test if autoprovide delay time has expired.
virtual void processThrottledMessages ()
 Process messages in throttle queue that are being sent at specified rate.
virtual void flushThrottledMessages ()
 Flush messages in throttle queue.
virtual unsigned long incrementServiceCallCount ()
 Increment a counter to identify the service call being processed.
virtual unsigned long serviceCallCount () const
 Return service call counter.
virtual void updateBufferSizes ()
 Update Buffer sizes from Rid params object.
virtual DtNetReadStatus momProcessMsg (const DtRtiMsg &msg)
 apply MOM callbacks to message
DtFederateMgrfedMgr ()
 The federate manager.
DtPartnerMgrpartnerMgr ()
 Partner manager.
virtual MAKRti::DtTransportType internalTransportType () const
 Returns the TransportType associated for the internal connection.
virtual bool setupSelectParams (DtSelectParam *params)
 adds Read File descriptors to a DtSelectParams Return boolean: file descriptor was added? In case no descriptors have been added, should sleep instead of select as there will be no input.
virtual bool hasTransport (MAKRti::DtTransportType trans)
 returns true if the specified transport type is available
virtual DtRtiMsgcreate (DtRtiMsgKind kind)
 Request the RTI message factory for a msg.
virtual void setMsgFactory (DtRtiMsgFactory *fact)
 Get/Set the message factory.
virtual DtRtiMsgFactorymsgFactory () const
virtual void forceDropMulticastGroup (const MAKRti::DtInetAddr &addr, const MAKRti::DtInetAddr &netInterface=MAKRti::DtInetAddr::inaddrAny())
 Override listen count and force drop multicast address.
virtual bool repairFederationConnection ()
 Attempt to re-establish a broken connection to the federation Returns true if successful.
virtual RTI::FederateAmbassadorfedAmb () const
 Return pointer to Federate Ambassador.
virtual void addFedAmbWrapper (MAKRti::DtString const &name, DtFedAmbWrapper *fedAmb)
 Register a Federate Wrapper with the RTI A federate wrapper allows your plugin to monitor any RTI invoked services.
virtual bool addFedAmbWrapperAtFront (MAKRti::DtString const &name, DtFedAmbWrapper *fedAmb)
 When the fedAmb Wrapper is installed make certain that this particular wrapper is the first to process the msg.
virtual DtFedAmbWrapperremoveFedAmbWrapper (MAKRti::DtString const &name)
 Remove federate wrapper.
virtual unsigned long connectionId () const
 Return connection ID.
virtual DtFederateHandle fedHandle () const
 Return federate handle.
virtual unsigned long fedExHandle () const
 Return federation execution handle.
virtual const MAKRti::DtString & fedExName () const
 Return federation execution name.
virtual void setFederateHandle (DtFederateHandle handle)
 set federate handle ( this is used by restore and should not be called otherwise )
virtual DtLogicalTimeFactorylogicalTimeFactory (DtFederationHandle federationHandle=0) const
 Get the factory for the given federation that can create logical time/interval instances.
virtual void addLogicalTimeFactory (DtFederationHandle federationHandle, DtLogicalTimeFactory *timeFactory)
 Add the factory for the given federation that can create logical time/interval instances.
virtual void removeLogicalTimeFactory (DtFederationHandle federationHandle)
 Remove the factory for the given federation that can create logical time/interval instances.
virtual DtRtiMsgQueuemsgQueue ()
 Set/Get the time managed message queue.
virtual void setMsgQueue (DtRtiMsgQueue *msgQueuePtr)
virtual DtRetractInfoListretractList ()
 Set/Get the time managed retract list.
virtual void setRetractList (DtRetractInfoList *listPtr)
virtual bool saveInProgress () const
 Set/Get the flag indicating whether a save is in progress Unless a message is marked safe to process during a save a received message is queued for later processing.
virtual void setSaveInProgress (bool saveIsInProgress)
virtual bool restoreInProgress () const
 Set/Get the flag indicating whether a restore is in progress Unless a message is marked safe to process during a save a received message is queued for later processing.
virtual void setRestoreInProgress (bool saveIsInProgress)
virtual bool saveRestoreInProgress () const
 Return bool: Is save or restore in progress.
virtual void setMetadataControl (DtMetadataType type, bool onOff)
 Set/Get metadata control indicators.
virtual bool isMetadataEnabled (DtMetadataType type)
virtual void sendShutdownForwarderMsg ()
 Called by the rtiExec when it is exiting, only if it started this forwarder.
virtual unsigned long sequenceNumber () const
 Get the next sequence number.
virtual void incrementSequenceNumber ()
 Increment the sequence number.
virtual int sendDirectedStampedAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, DtFederateHandle fedHandle, const MAKRti::DtInetAddr &=MAKRti::DtInetAddr::inaddrAny())
virtual int sendDirectedStampedAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, DtBitMask *sendMask, const MAKRti::DtInetAddr &=MAKRti::DtInetAddr::inaddrAny())
virtual int sendStampedAnonymousAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
virtual int sendDirectedStampedAnonymousAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, DtFederateHandle fedHandle, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
virtual void setProcessingTick (bool processingTick)
 Set/Get tick processing state.
virtual bool processingTick () const
 Set/Get tick processing state.
virtual void setEvokingCallbacks (bool evokingCbs)
 Set/Get the evoke callbacks state.
virtual bool evokingCallbacks () const
 Set/Get the evoke callbacks state.
virtual void addPendingMsg (DtRtiMsg *msg)
 Add/get/process a pending message Messages will be processed during the next tick.
virtual bool processPendingMsg ()
 Add/get/process a pending message Messages will be processed during the next tick.
virtual DtRtiMsgnextPendingMsg ()
 Add/get/process a pending message Messages will be processed during the next tick.
virtual void emptyPendingMsgList ()
 Add/get/process a pending message Messages will be processed during the next tick.
virtual int pendingMsgCount ()
 Add/get/process a pending message Messages will be processed during the next tick.
virtual void addMsgCallback (DtRtiMsgKind msgKind, DtRtiMsgCbMgr::DtCallbackFcn fcn, void *usr, bool isMomCallback=false)
 Message Callbacks These callback functions operate on all of the connections.
virtual void removeMsgCallback (DtRtiMsgKind msgKind, DtRtiMsgCbMgr::DtCallbackFcn fcn, void *usr, bool isMomCallback=false)
 Message Callbacks These callback functions operate on all of the connections.
virtual void addWildcardMsgCallback (DtRtiMsgCbMgr::DtCallbackFcn fcn, void *usr, bool isMomCallback=false)
 Message Callbacks These callback functions operate on all of the connections.
virtual void removeWildcardMsgCallback (DtRtiMsgCbMgr::DtCallbackFcn fcn, void *usr, bool isMomCallback=false)
 Message Callbacks These callback functions operate on all of the connections.
virtual DtRtiConnectionreliableConn () const
 Returns the connection created by createTcpConn().
virtual DtRtiConnectionbestEffortConn () const
 Returns the connection created by createBestEffortConn().
virtual void listenToMulticastGroup (const MAKRti::DtInetAddr &addr, const MAKRti::DtInetAddr &netInterface=MAKRti::DtInetAddr::inaddrAny())
 Add/Drop multicast groups from the best effort connection Listens are accumulated and drops decrement.
virtual void dropMulticastGroup (const MAKRti::DtInetAddr &addr, const MAKRti::DtInetAddr &netInterface=MAKRti::DtInetAddr::inaddrAny())
 Add/Drop multicast groups from the best effort connection Listens are accumulated and drops decrement.
virtual bool lockServiceCall ()
 Called by asynchronous processing thread to gain mutually exclusive access to RTI managers.
virtual void unlockServiceCall ()
 Called by asychronous processing thread to release mutually exclusive access to RTI managers.
virtual bool serviceCallLocked ()
 Called by RTI Ambassador services query if mutex was set using lockServiceCall()
virtual bool enterServiceCall ()
 Called by RTI Ambassador services to gain mutually exclusive access to RTI managers.
virtual void exitServiceCall ()
 Called by RTI Ambassador services to release mutually exclusive access to RTI managers.
virtual bool inServiceCall ()
 Called by RTI Ambassador services query if mutex was set using enterServiceCall()

Static Public Member Functions

static DtConnectionMgrcreate (DtRIDParameters *p)
 Creates an instance of a DtConnectionMgr; If an alternate creator function has been set, that creator function will be called from within this function.
- Static Public Member Functions inherited from DtAsyncConnectionMgr
static DtConnectionMgrcreate (DtRIDParameters *p, bool isFederate=false, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient=DtBoost::shared_ptr< DtRtiAssistantLrcClient >())
 Creator function.
static void * run (void *usr)
 thread start calls worker thread
- Static Public Member Functions inherited from DtConnectionMgr
static void setCreatorFunction (DtConnectionMgrCreator fn)
 Register a creator function.
static void setInternalCreatorFunction (DtConnectionMgrCreator fn)
 Register alternate internal creators.

Protected Types

typedef std::multimap
< DtFederateHandle, int > 
DtFedHandleToFedExHandleMap
 Stores all FedEx handles associated with each Federate Handle serviced by shared memory queue manager.
typedef std::map< int,
DtBitMask * > 
DtRouteMaskFilterByFedexHandle
 Destination list masks.
typedef std::map
< MAKRti::DtString, DtBitMask * > 
DtRouteMaskFilterByFedexName

Protected Member Functions

 DtRtiShmQNetMgr (DtRIDParameters *params)
 Default Constructor.
 DtRtiShmQNetMgr (const DtRtiShmQNetMgr &orig)
 Copy Ctor and Assignment Operator unimplemented.
DtRtiShmQNetMgroperator= (const DtRtiShmQNetMgr &orig)
virtual bool processConnection (DtRtiConnection *conn, MAKRti::DtTransportType trans)
 Override base class methods to allow special processing on inbound messages.
virtual DtNetReadStatus processMsg (const DtRtiMsg &msg)
 this function applies the callbacks to the message
virtual void applyOutboundMsgFilters (DtRtiMsg *msg)
 Special processing is needed on certain inbound and outbound messages.
virtual DtNetReadStatus filterReliableLoopbacks (const DtRtiMsg &msg)
virtual bool performMulticastDiscovery ()
 virtual void addOutboundMsgFilter( DtMessageFilter *filter ); virtual void removeOutboundMsgFilter( DtMessageFilter *filter );
- Protected Member Functions inherited from DtAsyncConnectionMgr
 DtAsyncConnectionMgr (DtRIDParameters *params, bool isFederate=false, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient=DtBoost::shared_ptr< DtRtiAssistantLrcClient >())
virtual void doDisconnectFederation ()
 Perform actual disconnect.
virtual bool doWait (MAKRti::DtTime period)
 Perform actual wait, called by wait function.
virtual void processCallbackMsg (const DtFedAmbCallbackMsg &callbackMsg)
 Message callback.
virtual DtQueuePacketgetPacket ()
 Get a packet off of receive buffer Receive buffer is refreshed if empty.
virtual bool sendPackets ()
 Send buffered packets.
virtual DtNetReadStatus receivePacket (DtRtiConnection *conn, MAKRti::DtTransportType transportType, unsigned int &receivedPacketCount)
 Process a packet from the given connection.
virtual bool receivePackets ()
 Process connections and either place packets in receive queue or process messages directly if asynchronous callbacks are enabled.
virtual DtNetReadStatus processMsgQueueCallbacks (DtRtiMsg &msg, unsigned int &receivedPacketCount)
 Process message but queue any resulting federate ambassador callbacks.
virtual void processPendingMsgQueueCallbacks ()
 Process a pending message but queue any resulting federate ambassador callbacks.
virtual void processPendingMsgMakeCallbacks ()
 Process a pending message and make any resulting federate ambassador callbacks.
virtual void setMessageTracking (DtRtiMsg &msg)
 Set the appropriate tracking values in the message.
virtual void waitOnIO (DtSelectParamWithWrite &params)
 Make processing wait on IO.
virtual void destroyPackets ()
 Destroy any packets in the send and receive buffers and queues.
virtual void destroyRelConn ()
 Destroy reliable connection.
virtual void destroyAncillaryRelConn (DtRtiConnection *conn)
 Destroy the given ancillary reliable connection.
virtual void destroyAncillaryRelConns ()
 Destroy ancillary reliable connections.
virtual void startAsynchronousProcessing ()
 Start asynchronous processing.
virtual void stopAsynchronousProcessing ()
 Stop asynchronous processing.
- Protected Member Functions inherited from DtConnectionMgr
 DtConnectionMgr (DtRIDParameters *params, bool isFederate=false, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient=DtBoost::shared_ptr< DtRtiAssistantLrcClient >())
 Constructor is performed through create.
virtual int initConnections ()
 Initialize the RTI's exercise connections Users who wish to override the MAK RTI's network connections should override this function.
virtual bool createBestEffortConn ()
 Create best effort connection; Returns true if successful Could be that it already exist in which case it is still used.
virtual void destroyBestEffortConn ()
 Destroy best effort connection.
virtual bool createRelConn ()
 Create reliable connection; Returns true if successful.
virtual unsigned int createAncillaryRelConns ()
 Create ancillary reliable connections; Returns count of successful connections.
virtual unsigned int ancillaryReliableConnsCount () const
 Report number of ancillary reliable connections successfully established.
virtual bool checkRelConn ()
 Check the reliable connection status.
virtual void processReadResult (int readError)
 Process read result to print error diagnostics for example.
virtual int sendStampedUtilityFunction (DtRtiMsg *msg, MAKRti::DtTransportType transport, bool performDelete, bool isAnonymous, const MAKRti::DtInetAddr &addr)
 Called by sendStamped, sendStampedAndDelete, sendAnonymousStamped, etc.

Protected Attributes

MAKRti::DtInetAddr myHostIpAddr
 Need to know host IP address and port used for outbound best effort messages so looped back multicast messages can be filtered.
unsigned int myPort
DtSmConnectionMgrmySmConnMgr
bool myCloseAllConnectionsRequested
 Connection shutdown requested?
DtFedHandleToFedExHandleMap myFedHandleToFedExMap
DtRouteMaskFilterByFedexHandle myFedexHandleFilterList
DtRouteMaskFilterByFedexName myFedexFilterList
- Protected Attributes inherited from DtAsyncConnectionMgr
bool myTimeToQuit
bool myThreadActivated
bool myAsynchronous
bool myAsynchronousCallbacks
bool myAsynchronousProcessMsg
bool myReserved
bool myMoreToFlush
bool myDoDisconnect
DtMutex * mySendLock
DtMutex * myReceiveLock
pthread_t myThreadHandle
int mySendEvent [2]
int myRecvEvent [2]
float myIoPeriod
float myTickWaitPeriod
unsigned int myMaxQueue
unsigned int myMaxCount
unsigned int myLockQueue
long myReceivedBufferCurrent
 Federate thread buffers.
long myReceivedBufferCount
DtQueuePacket ** myReceivedBuffer
unsigned int myCurrentSendPacket
 IO thread buffers.
unsigned int myPacketsToSendCount
std::vector< DtQueuePacket * > mySendPacketBuffer
std::vector< DtQueuePacket * > myRecvPacketBuffer
unsigned int myReadPacketCount
 Number of packets read until time to yield (== max count)
MAKRti::DtClock myBestEffortRetryTimer
 Mechanism to retry best effort transmits which block.
unsigned int myBestEffortRetryAttempts
MAKRti::DtTime myBestEffortTimeToRetry
MAKRti::DtList * mySendQueue
 Exchange queues between federate and IO threads these lists are used in asynchronous mode.
MAKRti::DtList * myReceiveQueue
DtCallbackQueue * myCallbackQueue
 A federate ambassador wrapper that queues up federate ambassador calls.
DtThreadSafe< bool > myAsynchronousConnectionIsOk
unsigned int myNextReliableConnToRead
 Mechanism to track which reliable connection to fetch packets from when multiple ancillary reliable connections exist.
- Protected Attributes inherited from DtConnectionMgr
DtRtiMsgFactorymyMsgFactory
 The message factory.
DtRtiConnectionmyBestEffortConn
 The best effort connection.
DtRtiConnectionmyPrimaryReliableConn
 The primary reliable connection.
DtRtiConnectionList myReliableConns
DtRIDParametersmyParams
 The RTI initialization parameters.
DtFederateMgrmyFedMgr
 The federate manager.
std::map< MAKRti::DtInetAddr,
DtMulticastEntry * > 
myMulticastGroups
 LRC listening to these multicast groups.
DtFedAmbWrapperChain myFedAmbChain
 Chain of Federate Ambassador Wrappers.
DtDfltMsgFactory myDfltMsgFactory
 Default message factory.
DtRtiMsgCbMgr myMsgCbMgr
 Message callback manager.
DtRtiMsgCbMgr myMomMsgCbMgr
 MOM message callback manager.
MAKRti::DtTransportType myInternalTransportType
 Transport type used for internal messages.
bool myAddTransportTypeMetadata
 Metadata control indicators.
bool myAddMcastMetadata
std::map< DtFederationHandle,
DtLogicalTimeFactory * > 
myLogicalTimeFactories
 Factories for creating logical time instances.
DtRtiMsgQueuemyMsgQueue
 Message queue.
DtRetractInfoListmyRetractList
 Message retractions.
std::list< DtRtiMsg * > myPendingMessages
 Pending messages.
bool mySaveInProgress
 Save status.
bool myRestoreInProgress
 Restore status.
unsigned long myConnectionId
 "unique" identifier for this connMgr (if there is a good source of unique ids)
MAKRti::DtString myFedExName
 Federation execution name.
DtFederateHandle myFedExHandle
 Federation execution handle.
DtFederateHandle myFederateHandle
 Federate handle.
unsigned long myReceivedMsgCount
 Number of received messages.
unsigned long mySentMsgCount
 Number of sent messages.
MAKRti::DtList myWorkingMsgId
 Diagnostic message ID stack.
DtMessageThrottlemyMessageThrottle
 Message output throttle.
bool myAllProvideUpdateRequestsDelayed
 Extend auto provide delay to all attribute update requests.
DtMutex * myCallbackMutex
 Mutex to synchronize access to RTI and Federate Ambassadors.
unsigned int myLockService
 RTI is processing a message.
unsigned int myInService
 RTI is processing a service call.
MAKRti::DtClock myClock
 Clock for timing.
DtBoost::shared_ptr
< DtRtiAssistantLrcClient
myAssistantClient
 The assistant client.
bool myIsFederate
 Whether this manager is for a federate.
unsigned long myVersionConflictCount
 The count of message version conflicts.
MAKRti::DtTime myVersionConflictNoticationTimer
unsigned long mySizeMismatchCount
 The count of message size mismatches.
MAKRti::DtTime mySizeMismatchNoticationTimer
DtPartnerMgrmyPartnerMgr
unsigned long myServiceCallCount
 Service call counter - increment before processing each service call.
bool myProcessingTick
 Tick processing state.
bool myEvokingCallbacks
 Indicates if callbacks are being evoked.
bool myProcessingMessage
 Indicates if message is being processed.
bool myShutdown
 Shutdown requested.
bool myShuttingDown
 Shutdown acknowledged.

Additional Inherited Members

- Public Types inherited from DtConnectionMgr
typedef DtConnectionMgr *(* DtConnectionMgrCreator )(DtRIDParameters *p, bool isFederate, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient)
 Connection Manager Creator.
- Static Protected Member Functions inherited from DtAsyncConnectionMgr
static void processCallbackMsg (const DtFedAmbCallbackMsg &callbackMsg, void *usr)
 Message callback.
- Static Protected Attributes inherited from DtConnectionMgr
static DtConnectionMgrCreator theCreator = 0
 The plugin creator.
static DtConnectionMgrCreator theInternalCreator = 0
 The internal creator.

Detailed Description

The DtRtiShmQNetMgr class implements a network I/O socket manager to filter and exchange messages between a shared memory queue manager and the network.

It is derived from the DtAsyncConnectionMgr class. DtRtiShmQNetMgr manages connections and message distribution between co-located federates communicating via shared memory and remote federates (via UDP multicast) and remote Forwarders (if any).

Member Typedef Documentation

typedef std::multimap< DtFederateHandle, int > DtRtiShmQNetMgr::DtFedHandleToFedExHandleMap
protected

Stores all FedEx handles associated with each Federate Handle serviced by shared memory queue manager.

Keyed by FedHandle since it is likely there will be multiple federates within the same FedEx sharing shared memory, so the federate handles will likely be more unique.

typedef std::map< int, DtBitMask* > DtRtiShmQNetMgr::DtRouteMaskFilterByFedexHandle
protected

Destination list masks.

For each federation execution which has federates serviced by the shared memory queue a destination list mask is maintained which can be used to alter the destination list in all outbound messages.

typedef std::map< MAKRti::DtString, DtBitMask* > DtRtiShmQNetMgr::DtRouteMaskFilterByFedexName
protected

Constructor & Destructor Documentation

DtRtiShmQNetMgr::DtRtiShmQNetMgr ( DtRIDParameters params)
protected

Default Constructor.

Referenced by create().

DtRtiShmQNetMgr::~DtRtiShmQNetMgr ( )
virtual

Destructor.

References myFedHandleToFedExMap.

DtRtiShmQNetMgr::DtRtiShmQNetMgr ( const DtRtiShmQNetMgr orig)
protected

Copy Ctor and Assignment Operator unimplemented.

Member Function Documentation

void DtRtiShmQNetMgr::applyOutboundMsgFilters ( DtRtiMsg msg)
protectedvirtual

Special processing is needed on certain inbound and outbound messages.

DtConnectionMgr * DtRtiShmQNetMgr::create ( DtRIDParameters p)
static

Creates an instance of a DtConnectionMgr; If an alternate creator function has been set, that creator function will be called from within this function.

References DtRtiShmQNetMgr(), DtConnectionMgr::init(), DtConnectionMgr::params(), and DtConnectionMgr::theCreator.

void DtRtiShmQNetMgr::dropSmFederate ( DtFederateHandle  federateHandle,
int  fedExHandle 
)
virtual

References myFedHandleToFedExMap.

void DtRtiShmQNetMgr::enrollSmFederate ( DtFederateHandle  federateHandle,
int  fedExHandle 
)
virtual

Maintanence methods for Federate to FedEx handle map.

References myFedHandleToFedExMap.

DtNetReadStatus DtRtiShmQNetMgr::filterReliableLoopbacks ( const DtRtiMsg msg)
protectedvirtual
int DtRtiShmQNetMgr::init ( DtRIDParameters params)
virtual

Initialize the RTI's exercise parameters and connections Users who wish to override the MAK RTI's network connections should override this function or initConnections()

Reimplemented from DtAsyncConnectionMgr.

References DtConnectionMgr::bestEffortConn(), DtMetadataTypeMcastAddr, DtMetadataTypeTransport, DtConnectionMgr::myParams, performMulticastDiscovery(), DtConnectionMgr::setMetadataControl(), DtRtiConnection::socket(), and DtRIDParameters::udpPort.

DtRtiShmQNetMgr& DtRtiShmQNetMgr::operator= ( const DtRtiShmQNetMgr orig)
protected
bool DtRtiShmQNetMgr::performMulticastDiscovery ( )
protectedvirtual

virtual void addOutboundMsgFilter( DtMessageFilter *filter ); virtual void removeOutboundMsgFilter( DtMessageFilter *filter );

virtual void updateOutboundDestMask( DtBitMask& currentMask, DtFederateHandle fedHandle );

References DtMulitcastDiscoveryMgr::discover(), DtMulticastDiscoveryMsg::DtDiscoverTcpForwarder, DtRIDParameters::DtFomTransportTypeUseBestEffort, DtMulitcastDiscoveryMgr::init(), DtConnectionMgr::myParams, DtRIDParameters::setTcpForwarderAddr(), and DtRIDParameters::tcpForwarderAddrString().

Referenced by init().

bool DtRtiShmQNetMgr::processConnection ( DtRtiConnection conn,
MAKRti::DtTransportType  trans 
)
protectedvirtual

Override base class methods to allow special processing on inbound messages.

Reimplemented from DtConnectionMgr.

References DtNET_READ_NO_PACKETS, DtNET_READ_SUCCESS, DtAsyncConnectionMgr::handleMsg(), mySmConnMgr, DtRtiConnection::netRead(), NULL, DtConnectionMgr::sendAndDelete(), and DtRtiMsg::setTransportType().

DtNetReadStatus DtRtiShmQNetMgr::processMsg ( const DtRtiMsg msg)
protectedvirtual
void DtRtiShmQNetMgr::setSmConnMgr ( DtSmConnectionMgr smConnMgr)
virtual

Allow the DtRtiShmQNetMgr to access the shared memory connection manager directly to simplify forwarding messages.

References mySmConnMgr.

Member Data Documentation

bool DtRtiShmQNetMgr::myCloseAllConnectionsRequested
protected

Connection shutdown requested?

DtRouteMaskFilterByFedexName DtRtiShmQNetMgr::myFedexFilterList
protected
DtRouteMaskFilterByFedexHandle DtRtiShmQNetMgr::myFedexHandleFilterList
protected
DtFedHandleToFedExHandleMap DtRtiShmQNetMgr::myFedHandleToFedExMap
protected
MAKRti::DtInetAddr DtRtiShmQNetMgr::myHostIpAddr
protected

Need to know host IP address and port used for outbound best effort messages so looped back multicast messages can be filtered.

unsigned int DtRtiShmQNetMgr::myPort
protected
DtSmConnectionMgr* DtRtiShmQNetMgr::mySmConnMgr
protected

Referenced by processConnection(), and setSmConnMgr().


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)