MAK RTIspy API Documentation for HLA Evolved
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions
DtConnectionMgr Class Reference

Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communicate over the network or communicate with the LRC application (using the federate ambassador pointer). More...

+ Inheritance diagram for DtConnectionMgr:
+ Collaboration diagram for DtConnectionMgr:

List of all members.

Public Types

typedef DtConnectionMgr *(* DtConnectionMgrCreator )(DtRIDParameters *p, bool isFederate, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient)
 Connection Manager Creator.

Public Member Functions

virtual ~DtConnectionMgr ()
 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 initParams (DtRIDParameters *params)
 Initialize the parameters used by the connection manager.
virtual void enableSmartForwarding (bool enable, int maxNumFederates)
 Enables or disables smart forwarding.
virtual DtRIDParametersparams ()
 Get a pointer to the RID parameters.
virtual void setFederateMgr (DtFederateMgr *fedMgrPtr)
 Set the federate manager.
virtual int send (const DtRtiMsg &msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
 Sending.
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 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 Returns the size of the data sent.
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 int sendStampedAnonymousAndDelete (DtRtiMsg *msg, MAKRti::DtTransportType transport, const MAKRti::DtInetAddr &addr=MAKRti::DtInetAddr::inaddrAny())
 Send and delete a message stamped with fedEx name, but not federate ID Does not make retraction record of sent messages.
virtual void sendLoopback (DtRtiMsg *msg)
 Send a message to be processed by this federate.
virtual bool flush ()
 Send buffered messages.
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 processQueuedMessages ()
 Process queued messages that are being sent at specified rate.
virtual void flushQueuedMessages ()
 Process queued messages.
virtual unsigned long incrementServiceCallCount ()
 Increment a counter to identify the service call being processed.
virtual unsigned long serviceCallCount () const
 Return service call counter.
virtual bool tick ()
 Receiving.
virtual bool processConnection (DtRtiConnection *conn, MAKRti::DtTransportType trans)
 Read from the given connection and process the message (if received) Return boolean: message was received? (i.e.
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 void updateBufferSizes ()
 Update Buffer sizes from Rid params object.
virtual DtNetReadStatus handleMsg (DtRtiMsg &msg)
 Handle this message by either processing it or queuing it if save pending.
virtual DtNetReadStatus processMsg (const DtRtiMsg &msg)
 this function applies the callbacks to the message
virtual DtNetReadStatus momProcessMsg (const DtRtiMsg &msg)
 apply MOM callbacks to message
DtFederateMgrfedMgr ()
 The federate manager.
DtPartnerMgrpartnerMgr ()
 Partner manager.
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 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 void connectFederation (DtLogicalTimeFactory *logicalTimeFactoryPtr, MAKRti::DtString fedExName, DtFederateHandle federateHandle, int fedExHandle)
 The LRC associates its federation information with its network connections.
virtual bool repairFederationConnection ()
 Attempt to re-establish a broken connection to the federation Returns true if successful.
virtual void disconnectFederation ()
 The LRC disassociates its connections from the federation.
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 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 void yield ()
 Yield processing to allow more data to arrive.
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 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.
Connections

Get pointers to the individual connections.

These should be avoided by classes outside of the connectionMgr. For example in a threaded configuration calling the connection directly can cause improper behavior.

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.
AsynchronousLocks

When asynchronous callbacks are enabled, these calls manipulate a mutex for synchronizing access to the RTI Ambassador and the Federate Ambassador.

The mutex shall be locked upon entering an RTI Ambassador call and unlocked on exit. It shall also be locked prior to processing RTI messages and unlocked when processing completes. Asynchronous callback mode supports asynchronous message processing that can generate asynchronous Federate Ambassador callbacks and also asynchronous access to RTI Ambassador by separate federate threads.

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, bool isFederate=false, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient=DtBoost::shared_ptr< DtRtiAssistantLrcClient >())
 A Connection Manager instance is created, initialized and its pointer is returned.
static void setCreatorFunction (DtConnectionMgrCreator fn)
 Register a creator function.
static void setInternalCreatorFunction (DtConnectionMgrCreator fn)
 Register alternate internal creators.

Protected Types

typedef std::list
< DtRtiConnection * > 
DtRtiConnectionList
 List of all reliable connections (for forwarder load balancing)

Protected Member Functions

 DtConnectionMgr (DtRIDParameters *params, bool isFederate=false, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient=DtBoost::shared_ptr< DtRtiAssistantLrcClient >())
 Constructor is performed through create.
virtual bool doWait (MAKRti::DtTime period)
 perform actual wait. Called by wait
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 void destroyRelConn ()
 Destroy reliable connection.
virtual unsigned int createAncillaryRelConns ()
 Create ancillary reliable connections; Returns count of successful connections.
virtual void destroyAncillaryRelConn (DtRtiConnection *conn)
 Destroy the given ancillary reliable connection.
virtual void destroyAncillaryRelConns ()
 Destroy ancillary reliable 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

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.

Static Protected Attributes

static DtConnectionMgrCreator theCreator = 0
 The plugin creator.
static DtConnectionMgrCreator theInternalCreator = 0
 The internal creator.

Private Member Functions

 DtConnectionMgr (DtConnectionMgr const &)
 Copy Constructor not implemented -- Copy Not Allowed!
DtConnectionMgroperator= (DtConnectionMgr const &)
 Assignment not implemented -- Assignment Not Allowed!

Detailed Description

Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communicate over the network or communicate with the LRC application (using the federate ambassador pointer).

Override this class to change the way in which the MAK RTI communicates with other LRC components (or the rtiexec). This class also stores the user's federate ambassador pointer and provides a mechanism for monitoring RTI invoked services.


Member Typedef Documentation

typedef DtConnectionMgr*(* DtConnectionMgr::DtConnectionMgrCreator)(DtRIDParameters *p, bool isFederate, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient)

Connection Manager Creator.

typedef std::list< DtRtiConnection* > DtConnectionMgr::DtRtiConnectionList [protected]

List of all reliable connections (for forwarder load balancing)


Constructor & Destructor Documentation

DtConnectionMgr::DtConnectionMgr ( DtRIDParameters params,
bool  isFederate = false,
DtBoost::shared_ptr< DtRtiAssistantLrcClient assistantClient = DtBoost::shared_ptr<DtRtiAssistantLrcClient>() 
) [protected]

Constructor is performed through create.

References DtBindMessage(), myDfltMsgFactory, myPartnerMgr, and setMsgFactory().

Referenced by create().

Copy Constructor not implemented -- Copy Not Allowed!


Member Function Documentation

Activate a delay timer (based on RID) used by managers to control timing for autoprovide callbacks Expired delays disable activation for current tick.

References DtMessageThrottle::activateAutoProvideDelay(), and myMessageThrottle.

Referenced by DtObjectMgr::processRequest().

Activate a delay timer (based on RID) used by managers to control transmission of internal state Expired delays disable activation for current tick.

References DtMessageThrottle::activateTransmitDelay(), and myMessageThrottle.

Referenced by DtObjectMgr::addPendingRegister(), DtInteractionMgr::processPub(), and DtObjectMgr::processPub().

void DtConnectionMgr::addFedAmbWrapper ( MAKRti::DtString const &  name,
DtFedAmbWrapper fedAmb 
) [virtual]

Register a Federate Wrapper with the RTI A federate wrapper allows your plugin to monitor any RTI invoked services.

Wrappers are set up in a chain: Each DtFedAmbWrapper has a pointer to the next Federate Ambassador pointer in the list. The last pointer in the list is always the one given to the RTI in joinFederationExecution.

References DtFedAmbWrapperChain::addWrapper(), and myFedAmbChain.

Referenced by DtRtiAmbassadorBaseImplementor::addFedAmbWrapper(), DtFederateMgr::applyRidParameters(), DtTestManager::postJoinInit(), and DtAsyncConnectionMgr::setFederateMgr().

bool DtConnectionMgr::addFedAmbWrapperAtFront ( MAKRti::DtString const &  name,
DtFedAmbWrapper fedAmb 
) [virtual]

When the fedAmb Wrapper is installed make certain that this particular wrapper is the first to process the msg.

Returns whether the addition was sucessful, or another wrapper is already designated The wrapper At Front.

References DtFedAmbWrapperChain::addWrapperAtFront(), and myFedAmbChain.

Referenced by DtAsyncConnectionMgr::setFederateMgr().

void DtConnectionMgr::addLogicalTimeFactory ( DtFederationHandle  federationHandle,
DtLogicalTimeFactory timeFactory 
) [virtual]

Add the factory for the given federation that can create logical time/interval instances.

References myLogicalTimeFactories.

Referenced by DtSmConnectionMgr::connectFederation(), connectFederation(), and DtRtiExec::processCreate().

void DtConnectionMgr::addMsgCallback ( DtRtiMsgKind  msgKind,
DtRtiMsgCbMgr::DtCallbackFcn  fcn,
void *  usr,
bool  isMomCallback = false 
) [virtual]

Message Callbacks These callback functions operate on all of the connections.

MOM callbacks are processed without regard to the federates time status

References DtMessageCallbackManager< T_Message, T_MessageKind >::addMsgCallback(), myMomMsgCbMgr, and myMsgCbMgr.

Referenced by DtQueryRestoreStatusMsg::addCallback(), DtAbortRestoreMsg::addCallback(), DtQuerySaveStatusMsg::addCallback(), DtSaveTimeAdvanceMsg::addCallback(), DtInitiatedSaveMsg::addCallback(), DtSaveBegunMsg::addCallback(), DtRtiExecDisconnectMsg::addCallback(), DtAbortSaveMsg::addCallback(), DtDisconnectMsg::addCallback(), DtQueueFullMsg::addCallback(), DtRtiExecShutdownForwarderMsg::addCallback(), DtListFederationsMsg::addCallback(), DtDeleteSocketMsg::addCallback(), DtAliveMsg::addCallback(), DtRestoreRequestMsg::addCallback(), DtRestoreMsg::addCallback(), DtSaveInitiateConstrainedMsg::addCallback(), DtSaveInitiateMsg::addCallback(), DtRestoreCompleteMsg::addCallback(), DtSaveRequestMsg::addCallback(), DtDesignatedFederateMsg::addCallback(), DtPubInterMsg::addCallback(), DtSaveCompleteMsg::addCallback(), DtUnpubInterMsg::addCallback(), DtRidTestRequestMsg::addCallback(), DtConnectMsg::addCallback(), DtWwwStateReqMsg::addCallback(), DtReleaseMultiNameMsg::addCallback(), DtReserveMultiNameMsg::addCallback(), DtSubInterMsg::addCallback(), DtRestoreInitiateMsg::addCallback(), DtEnableDisableNetworkTestingMsg::addCallback(), DtLocDelMsg::addCallback(), DtNetworkMapReqMsg::addCallback(), DtUnsubInterMsg::addCallback(), DtDestroyMsg::addCallback(), DtTransferRidParamsMsg::addCallback(), DtForwarderConnectionLostMsg::addCallback(), DtReqDiscObjMsg::addCallback(), DtUnpubObjMsg::addCallback(), DtUnsubObjMsg::addCallback(), DtRestoreEndMsg::addCallback(), DtSaveFinishedMsg::addCallback(), DtPubObjMsg::addCallback(), DtNetworkMapRspMsg::addCallback(), DtMacAddrMsg::addCallback(), DtResignDirectiveMsg::addCallback(), DtWwwFederateStateReqMsg::addCallback(), DtForwarderPingMsg::addCallback(), DtForwarderResignMsg::addCallback(), DtDestroyResponseMsg::addCallback(), DtFedAmbCallbackMsg::addCallback(), DtForwarderPortMsg::addCallback(), DtInteractionRoMsg::addCallback(), DtReportFederationsMsg::addCallback(), DtSmEnrollmentMsg::addCallback(), DtSaveTimeMsg::addCallback(), DtMultiNameReservedMsg::addCallback(), DtCreateResponseMsg::addCallback(), DtDeleteRoMsg::addCallback(), DtRestoreBegunMsg::addCallback(), DtPartnerFederateMsg::addCallback(), DtRestoreReplyMsg::addCallback(), DtWwwControlRspMsg::addCallback(), DtWwwControlMsg::addCallback(), DtQueryInterTransportMsg::addCallback(), DtReconnectMsg::addCallback(), DtJoinConfirmMsg::addCallback(), DtUpdateRoMsg::addCallback(), DtSubObjMsg::addCallback(), DtWwwStateRspMsg::addCallback(), DtRegObjMsg::addCallback(), DtForwarderCounterMsg::addCallback(), DtSaveResponseMsg::addCallback(), DtRtiExecHandshakeMsg::addCallback(), DtFomModuleRequestMsg::addCallback(), DtDiscObjMsg::addCallback(), DtRtiExecConnectMsg::addCallback(), DtWwwFederateStateRspMsg::addCallback(), DtMcastConfigureMsg::addCallback(), DtSyncPointQueryMsg::addCallback(), DtLatencyReportMsg::addCallback(), DtMulticastDiscoveryMsg::addCallback(), DtTestMgrStatusMsg::addCallback(), DtFomModuleDistributionMsg::addCallback(), DtJoinLightWeightMsg::addCallback(), DtChangeLatencyTestModeMsg::addCallback(), DtConnectConfirmMsg::addCallback(), DtResignMsg::addCallback(), DtQueryTransportMsg::addCallback(), DtCreateMsg::addCallback(), DtRequestMsg::addCallback(), DtForwarderNodeInfoMsg::addCallback(), DtJoinMsg::addCallback(), DtOwnershipMsg::addCallback(), DtSyncPointMsg::addCallback(), and DtJoinResponseMsg::addCallback().

void DtConnectionMgr::addPendingMsg ( DtRtiMsg msg) [virtual]

Add/get/process a pending message Messages will be processed during the next tick.

References myPendingMessages.

Referenced by createAncillaryRelConns(), createRelConn(), handleMsg(), repairFederationConnection(), DtRtiExecFederateMgr::restore(), and DtRtiExecFederateMgr::save().

void DtConnectionMgr::addWildcardMsgCallback ( DtRtiMsgCbMgr::DtCallbackFcn  fcn,
void *  usr,
bool  isMomCallback = false 
) [virtual]

Message Callbacks These callback functions operate on all of the connections.

MOM callbacks are processed without regard to the federates time status

References DtMessageCallbackManager< T_Message, T_MessageKind >::addWildcardMsgCallback(), myMomMsgCbMgr, and myMsgCbMgr.

Return true if all provide update calls should be delayed (not just auto provide).

References myAllProvideUpdateRequestsDelayed.

Referenced by DtObjectMgr::processRequest().

unsigned int DtConnectionMgr::ancillaryReliableConnsCount ( ) const [protected, virtual]

Report number of ancillary reliable connections successfully established.

References myReliableConns.

Referenced by initConnections().

bool DtConnectionMgr::checkRelConn ( ) [protected, virtual]

Check the reliable connection status.

Attempt to reconnect if connection has been lost.

References params(), reliableConn(), and repairFederationConnection().

Referenced by processConnections(), DtAsyncConnectionMgr::receivePackets(), send(), and DtAsyncConnectionMgr::sendPackets().

void DtConnectionMgr::connectFederation ( DtLogicalTimeFactory logicalTimeFactoryPtr,
MAKRti::DtString  fedExName,
DtFederateHandle  federateHandle,
int  fedExHandle 
) [virtual]
unsigned long DtConnectionMgr::connectionId ( ) const [virtual]

Request the RTI message factory for a msg.

The caller is responsible for deletion. By default, all exercise connections use the same factory for creating messages. The returned msg is blank and must be filled in before being sent.

References DtMessageFactory< T_Message, T_MessageKind, T_NetworkHeader >::create(), and msgFactory().

Referenced by DtFedExec::changeLatencyTestMode(), DtRtiAmbassadorBaseImplementor::completeConnection(), DtSmConnectionMgr::connectFederation(), DtSmConnectionMgr::disconnectFederation(), DtSmConnectionMgr::dropMulticastGroup(), dropMulticastGroup(), DtFedExec::endRestore(), DtFedExec::endSave(), DtSmConnectionMgr::forceDropMulticastGroup(), forceDropMulticastGroup(), DtSmConnectionMgr::listenToMulticastGroup(), listenToMulticastGroup(), DtFedExec::processCreateReady(), DtObjectMgr::releaseAllAttributes(), DtSmConnectionMgr::repairFederationConnection(), DtObjectMgr::sendBestEffortUpdateMsg(), DtRtiExecFederateMgr::sendCreateMsg(), DtRtiExec::sendCreateResponseMsg(), DtFedExec::sendDesignatedFederate(), DtRtiExecFederateMgr::sendDestroyMsg(), DtRtiExec::sendDestroyResponseMsg(), DtObjectMgr::sendDiscoverMsg(), DtFedExec::sendEnableDisableNetworkTestingMsg(), DtInteractionMgr::sendInteractionMsg(), DtRtiExecFederateMgr::sendJoinConfirmMsg(), DtPartnerMgr::sendJoinMessage(), DtRtiExecFederateMgr::sendJoinMsg(), DtRtiExec::sendJoinResponseMsg(), DtFedExec::sendJoinResponseMsg(), DtObjectMgr::sendLocalDeleteMsg(), DtFedExec::sendMultiNameReservedMsg(), DtFedExec::sendNameReservedMsg(), DtPartnerMgr::sendPartnerMessage(), DtObjectMgr::sendPendingDiscoveries(), DtInteractionMgr::sendPublishMsg(), DtObjectMgr::sendPublishMsg(), DtObjectMgr::sendRegisterMsg(), DtObjectMgr::sendReliableUpdateMsg(), DtObjectMgr::sendRemoveDiscoverMsg(), DtRtiExec::sendReportFederationsMsg(), DtObjectMgr::sendRequestDiscoverMsg(), DtFedExec::sendResignMsg(), DtFederateMgr::sendResignMsg(), DtRtiExecFederateMgr::sendRestoreBegunMsg(), DtRtiExecFederateMgr::sendRestoreCompleteMsg(), DtRtiExecFederateMgr::sendRestoreRequestMsg(), DtFedExec::sendRestoreStatus(), DtRtiExec::sendRtiExecHandshakeMsg(), DtRtiExecFederateMgr::sendSaveBegunMsg(), DtRtiExecFederateMgr::sendSaveCompleteMsg(), DtFedExec::sendSaveInitiateConstrainedMsg(), DtFedExec::sendSaveInitiateMsg(), DtRtiExecFederateMgr::sendSaveRequestMsg(), DtFedExec::sendSaveResponse(), DtFedExec::sendSaveStatus(), DtInteractionMgr::sendSubscribeMsg(), DtObjectMgr::sendSubscribeMsg(), DtRtiExecFederateMgr::sendSyncPointMsg(), DtFedExec::sendSyncPointMsg(), DtFedExec::sendSyncPointReport(), DtFedExec::sendSyncPointStatusReport(), DtFedExec::sendTransferRidParamsMsg(), DtInteractionMgr::sendUnpublishMsg(), DtObjectMgr::sendUnpublishMsg(), DtInteractionMgr::sendUnsubscribeMsg(), DtObjectMgr::sendUnsubscribeMsg(), and DtSmConnectionMgr::~DtSmConnectionMgr().

DtConnectionMgr * DtConnectionMgr::create ( DtRIDParameters p,
bool  isFederate = false,
DtBoost::shared_ptr< DtRtiAssistantLrcClient assistantClient = DtBoost::shared_ptr<DtRtiAssistantLrcClient>() 
) [static]

A Connection Manager instance is created, initialized and its pointer is returned.

A registered creator is used if present; otherwise, an internal class is instantiated.

Reimplemented in DtAsyncConnectionMgr, and DtSmConnectionMgr.

References DtConnectionMgr(), init(), params(), theCreator, and theInternalCreator.

unsigned int DtConnectionMgr::createAncillaryRelConns ( ) [protected, virtual]
bool DtConnectionMgr::createBestEffortConn ( ) [protected, virtual]
bool DtConnectionMgr::createRelConn ( ) [protected, virtual]

Return true if autoprovides should be delayed.

References DtMessageThrottle::delayAutoProvide(), and myMessageThrottle.

Referenced by DtObjectMgr::processRequest().

bool DtConnectionMgr::delayTransmit ( ) const [virtual]

Return true if retransmission of internal state should be delayed.

References DtMessageThrottle::delayTransmit(), and myMessageThrottle.

Referenced by DtInteractionMgr::processPub().

void DtConnectionMgr::destroyAncillaryRelConn ( DtRtiConnection conn) [protected, virtual]

Destroy the given ancillary reliable connection.

Reimplemented in DtAsyncConnectionMgr.

References myReliableConns, and DtRtiConnection::socket().

Referenced by processConnections().

void DtConnectionMgr::destroyAncillaryRelConns ( ) [protected, virtual]

Destroy ancillary reliable connections.

Reimplemented in DtAsyncConnectionMgr.

References myPrimaryReliableConn, myReliableConns, and DtRtiConnection::socket().

Referenced by ~DtConnectionMgr().

void DtConnectionMgr::destroyBestEffortConn ( ) [protected, virtual]

Destroy best effort connection.

References myBestEffortConn, and DtRtiConnection::socket().

Referenced by ~DtConnectionMgr().

void DtConnectionMgr::destroyRelConn ( ) [protected, virtual]
bool DtConnectionMgr::doWait ( MAKRti::DtTime  period) [protected, virtual]

perform actual wait. Called by wait

Reimplemented in DtAsyncConnectionMgr.

References params(), and setupSelectParams().

Referenced by wait().

bool DtConnectionMgr::drainBacklog ( MAKRti::DtTime  timeout = 0.0) [virtual]

Attempts to flush backlogged messages repeatedly until either all messages are sent or the timeout expires.

References flush(), and myClock.

Referenced by destroyRelConn().

void DtConnectionMgr::dropMulticastGroup ( const MAKRti::DtInetAddr &  addr,
const MAKRti::DtInetAddr &  netInterface = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]

Add/Drop multicast groups from the best effort connection Listens are accumulated and drops decrement.

The multicast is not actually dropped until the listen count goes to zero.

Reimplemented in DtSmConnectionMgr.

References bestEffortConn(), DtMulticastEntry::count, create(), DtMcastConfigureMsgKind, DtMcastDrop, myFederateHandle, myInternalTransportType, myMulticastGroups, myParams, sendStampedAndDelete(), DtMcastConfigureMsg::set(), and DtRtiConnection::socket().

Referenced by forceDropMulticastGroup(), DtInteractionMgr::removeClassMulticast(), and DtObjectMgr::removeClassMulticast().

void DtConnectionMgr::enableSmartForwarding ( bool  enable,
int  maxNumFederates 
) [virtual]

Called by RTI Ambassador services to gain mutually exclusive access to RTI managers.

Return true if lock was obtained; otherwise false (i.e., locks not used)

References myCallbackMutex, and myInService.

Referenced by DtRtiExecFederateMgr::destroyFederationExecution(), DtRtiAmbassadorBaseImplementor::enterServiceCall(), DtRtiExecFederateMgr::requestImmediateSave(), DtAsyncConnectionMgr::wait(), DtSmConnectionMgr::wait(), wait(), and DtRtiExecFederateMgr::waitForJoinResponse().

Set/Get the evoke callbacks state.

References myEvokingCallbacks.

unsigned long DtConnectionMgr::fedExHandle ( ) const [virtual]
const MAKRti::DtString & DtConnectionMgr::fedExName ( ) const [virtual]

Return federation execution name.

References myFedExName.

Referenced by DtSmConnectionMgr::connectFederation(), connectFederation(), and sendStampedUtilityFunction().

The federate manager.

Warning: Will return a null pointer when connection manager is not used by an LRC.

References myFedMgr.

Referenced by DtPartnerMgr::processPartnerReject().

Process queued messages.

References DtMessageThrottle::flush(), and myMessageThrottle.

void DtConnectionMgr::forceDropMulticastGroup ( const MAKRti::DtInetAddr &  addr,
const MAKRti::DtInetAddr &  netInterface = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]
bool DtConnectionMgr::hasTransport ( MAKRti::DtTransportType  trans) [virtual]

returns true if the specified transport type is available

References bestEffortConn(), and reliableConn().

Increment the sequence number.

References mySentMsgCount.

Referenced by DtObjectMgr::sendRegisterMsg(), and DtObjectMgr::sendUpdateMessage().

unsigned long DtConnectionMgr::incrementServiceCallCount ( ) [virtual]

Increment a counter to identify the service call being processed.

Return the incremented value

References myServiceCallCount.

Referenced by DtRtiAmbassadorBaseImplementor::incrementServiceCallCount().

int DtConnectionMgr::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 in DtAsyncConnectionMgr, and DtRtiShmQNetMgr.

References initConnections(), initParams(), myParams, and params().

Referenced by DtRtiShmQNetMgr::create(), create(), and DtSmConnectionMgr::createQMgr().

int DtConnectionMgr::initConnections ( ) [protected, virtual]
void DtConnectionMgr::initParams ( DtRIDParameters params) [virtual]

Called by RTI Ambassador services query if mutex was set using enterServiceCall()

References myInService.

Referenced by DtAsyncConnectionMgr::setMessageTracking(), DtAsyncConnectionMgr::wait(), DtSmConnectionMgr::wait(), and wait().

MAKRti::DtTransportType DtConnectionMgr::internalTransportType ( ) const [virtual]
void DtConnectionMgr::listenToMulticastGroup ( const MAKRti::DtInetAddr &  addr,
const MAKRti::DtInetAddr &  netInterface = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]

Add/Drop multicast groups from the best effort connection Listens are accumulated and drops decrement.

The multicast is not actually dropped until the listen count goes to zero.

Reimplemented in DtSmConnectionMgr.

References bestEffortConn(), DtMulticastEntry::count, create(), DtMcastConfigureMsgKind, DtMcastListen, myFederateHandle, myInternalTransportType, myMulticastGroups, myParams, sendStampedAndDelete(), DtMcastConfigureMsg::set(), and DtRtiConnection::socket().

Referenced by DtInteractionMgr::addClassMulticast(), DtObjectMgr::addClassMulticast(), and disconnectFederation().

Set/Get the time managed message queue.

References myMsgQueue.

Add/get/process a pending message Messages will be processed during the next tick.

References myPendingMessages.

Referenced by DtRtiExecFederateMgr::save().

DtConnectionMgr& DtConnectionMgr::operator= ( DtConnectionMgr const &  ) [private]

Assignment not implemented -- Assignment Not Allowed!

Partner manager.

References myPartnerMgr.

Referenced by DtSimpleFederateMgr::joinFederationExecution().

Add/get/process a pending message Messages will be processed during the next tick.

References myPendingMessages.

Referenced by DtRtiExecFederateMgr::save(), and DtAsyncConnectionMgr::workerThread().

bool DtConnectionMgr::processConnection ( DtRtiConnection conn,
MAKRti::DtTransportType  trans 
) [virtual]

Read from the given connection and process the message (if received) Return boolean: message was received? (i.e.

could be more input).

Reimplemented in DtRtiShmQNetMgr, and DtSmConnectionMgr.

References DtTestManager::addReceiveTimeStampIfNecessary(), DtNET_READ_NO_PACKETS, handleMsg(), myFedMgr, DtRtiConnection::netRead(), processReadResult(), DtRtiMsg::setTransportType(), and DtFederateMgr::testMgr().

Referenced by processConnections().

Check all the connections and process any incomming messages Return boolean: message was received? (i.e.

could be more input).

Reimplemented in DtAsyncConnectionMgr, and DtSmConnectionMgr.

References bestEffortConn(), checkRelConn(), DtRtiConnection::connId(), destroyAncillaryRelConn(), destroyRelConn(), flush(), DtRtiConnection::isOk(), myIsFederate, myReliableConns, processConnection(), and reliableConn().

Referenced by tick().

Set/Get tick processing state.

References myProcessingTick.

Referenced by send(), DtAsyncConnectionMgr::setMessageTracking(), and setProcessingTick().

Process queued messages that are being sent at specified rate.

References myMessageThrottle, and DtMessageThrottle::processQueuedMessages().

Referenced by DtFederateMgr::posttick().

void DtConnectionMgr::processReadResult ( int  readError) [protected, virtual]

Returns a file descriptor on which data will be present for the given transport type whenever there is incoming data waiting to be read.

Returns -1 if no such file descriptor.

Reimplemented in DtAsyncConnectionMgr, and DtSmConnectionMgr.

References bestEffortConn(), DtMsgSocket::descriptor(), reliableConn(), and DtRtiConnection::socket().

Referenced by DtAsyncConnectionMgr::readFileDescriptor().

DtFedAmbWrapper * DtConnectionMgr::removeFedAmbWrapper ( MAKRti::DtString const &  name) [virtual]
void DtConnectionMgr::removeLogicalTimeFactory ( DtFederationHandle  federationHandle) [virtual]

Remove the factory for the given federation that can create logical time/interval instances.

References myLogicalTimeFactories.

Referenced by DtRtiExec::destroyFederationByName(), DtSmConnectionMgr::disconnectFederation(), and disconnectFederation().

void DtConnectionMgr::removeMsgCallback ( DtRtiMsgKind  msgKind,
DtRtiMsgCbMgr::DtCallbackFcn  fcn,
void *  usr,
bool  isMomCallback = false 
) [virtual]

Message Callbacks These callback functions operate on all of the connections.

MOM callbacks are processed without regard to the federates time status

References myMomMsgCbMgr, myMsgCbMgr, and DtMessageCallbackManager< T_Message, T_MessageKind >::removeMsgCallback().

Referenced by DtQueryRestoreStatusMsg::removeCallback(), DtAbortRestoreMsg::removeCallback(), DtQuerySaveStatusMsg::removeCallback(), DtSaveTimeAdvanceMsg::removeCallback(), DtInitiatedSaveMsg::removeCallback(), DtSaveBegunMsg::removeCallback(), DtRtiExecDisconnectMsg::removeCallback(), DtAbortSaveMsg::removeCallback(), DtDisconnectMsg::removeCallback(), DtQueueFullMsg::removeCallback(), DtRtiExecShutdownForwarderMsg::removeCallback(), DtListFederationsMsg::removeCallback(), DtDeleteSocketMsg::removeCallback(), DtAliveMsg::removeCallback(), DtRestoreRequestMsg::removeCallback(), DtRestoreMsg::removeCallback(), DtSaveInitiateConstrainedMsg::removeCallback(), DtSaveInitiateMsg::removeCallback(), DtRestoreCompleteMsg::removeCallback(), DtSaveRequestMsg::removeCallback(), DtDesignatedFederateMsg::removeCallback(), DtPubInterMsg::removeCallback(), DtSaveCompleteMsg::removeCallback(), DtUnpubInterMsg::removeCallback(), DtWwwStateReqMsg::removeCallback(), DtRidTestRequestMsg::removeCallback(), DtConnectMsg::removeCallback(), DtReleaseMultiNameMsg::removeCallback(), DtReserveMultiNameMsg::removeCallback(), DtSubInterMsg::removeCallback(), DtRestoreInitiateMsg::removeCallback(), DtNetworkMapReqMsg::removeCallback(), DtEnableDisableNetworkTestingMsg::removeCallback(), DtLocDelMsg::removeCallback(), DtUnsubInterMsg::removeCallback(), DtDestroyMsg::removeCallback(), DtTransferRidParamsMsg::removeCallback(), DtForwarderConnectionLostMsg::removeCallback(), DtReqDiscObjMsg::removeCallback(), DtUnpubObjMsg::removeCallback(), DtUnsubObjMsg::removeCallback(), DtRestoreEndMsg::removeCallback(), DtNetworkMapRspMsg::removeCallback(), DtSaveFinishedMsg::removeCallback(), DtPubObjMsg::removeCallback(), DtMacAddrMsg::removeCallback(), DtWwwFederateStateReqMsg::removeCallback(), DtResignDirectiveMsg::removeCallback(), DtForwarderPingMsg::removeCallback(), DtForwarderResignMsg::removeCallback(), DtDestroyResponseMsg::removeCallback(), DtForwarderPortMsg::removeCallback(), DtInteractionRoMsg::removeCallback(), DtSmEnrollmentMsg::removeCallback(), DtReportFederationsMsg::removeCallback(), DtMultiNameReservedMsg::removeCallback(), DtFedAmbCallbackMsg::removeCallback(), DtSaveTimeMsg::removeCallback(), DtCreateResponseMsg::removeCallback(), DtDeleteRoMsg::removeCallback(), DtRestoreBegunMsg::removeCallback(), DtPartnerFederateMsg::removeCallback(), DtRestoreReplyMsg::removeCallback(), DtWwwControlRspMsg::removeCallback(), DtWwwControlMsg::removeCallback(), DtUpdateRoMsg::removeCallback(), DtQueryInterTransportMsg::removeCallback(), DtReconnectMsg::removeCallback(), DtJoinConfirmMsg::removeCallback(), DtWwwStateRspMsg::removeCallback(), DtSubObjMsg::removeCallback(), DtRegObjMsg::removeCallback(), DtForwarderCounterMsg::removeCallback(), DtSaveResponseMsg::removeCallback(), DtRtiExecHandshakeMsg::removeCallback(), DtFomModuleRequestMsg::removeCallback(), DtDiscObjMsg::removeCallback(), DtWwwFederateStateRspMsg::removeCallback(), DtRtiExecConnectMsg::removeCallback(), DtMcastConfigureMsg::removeCallback(), DtSyncPointQueryMsg::removeCallback(), DtLatencyReportMsg::removeCallback(), DtMulticastDiscoveryMsg::removeCallback(), DtTestMgrStatusMsg::removeCallback(), DtFomModuleDistributionMsg::removeCallback(), DtJoinLightWeightMsg::removeCallback(), DtChangeLatencyTestModeMsg::removeCallback(), DtResignMsg::removeCallback(), DtConnectConfirmMsg::removeCallback(), DtQueryTransportMsg::removeCallback(), DtCreateMsg::removeCallback(), DtRequestMsg::removeCallback(), DtForwarderNodeInfoMsg::removeCallback(), DtJoinMsg::removeCallback(), DtOwnershipMsg::removeCallback(), DtSyncPointMsg::removeCallback(), and DtJoinResponseMsg::removeCallback().

void DtConnectionMgr::removeWildcardMsgCallback ( DtRtiMsgCbMgr::DtCallbackFcn  fcn,
void *  usr,
bool  isMomCallback = false 
) [virtual]

Message Callbacks These callback functions operate on all of the connections.

MOM callbacks are processed without regard to the federates time status

References myMomMsgCbMgr, myMsgCbMgr, and DtMessageCallbackManager< T_Message, T_MessageKind >::removeWildcardMsgCallback().

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.

References myRestoreInProgress.

Referenced by handleMsg(), and processPendingMsg().

Set/Get the time managed retract list.

References myRetractList.

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.

References mySaveInProgress.

Referenced by handleMsg(), and processPendingMsg().

Return bool: Is save or restore in progress.

References myRestoreInProgress, and mySaveInProgress.

int DtConnectionMgr::send ( const DtRtiMsg msg,
MAKRti::DtTransportType  transport,
const MAKRti::DtInetAddr &  addr = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]
int DtConnectionMgr::sendAndDelete ( DtRtiMsg msg,
MAKRti::DtTransportType  transport,
const MAKRti::DtInetAddr &  addr = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]

Send a message and delete the message after it has been sent Returns the size of the data sent.

Reimplemented in DtAsyncConnectionMgr.

References send().

Referenced by DtFedExec::changeLatencyTestMode(), DtSmConnectionMgr::connectFederation(), DtSmConnectionMgr::disconnectFederation(), DtSmConnectionMgr::dropMulticastGroup(), DtFedExec::endRestore(), DtFedExec::endSave(), DtSmConnectionMgr::forceDropMulticastGroup(), DtSmConnectionMgr::listenToMulticastGroup(), DtRtiShmQNetMgr::processConnection(), DtFedExec::processCreateReady(), DtFedExec::processFedFileRequestMsg(), DtSynchronousFileDistributor::pullEntireFedFile(), DtSmConnectionMgr::repairFederationConnection(), DtRtiExec::ridRequestCb(), DtRtiExecFederateMgr::sendCreateMsg(), DtRtiExec::sendCreateResponseMsg(), DtFedExec::sendDesignatedFederate(), DtRtiExecFederateMgr::sendDestroyMsg(), DtRtiExec::sendDestroyResponseMsg(), DtFedExec::sendEnableDisableNetworkTestingMsg(), DtRtiExecFederateMgr::sendJoinMsg(), DtRtiExec::sendJoinResponseMsg(), DtFedExec::sendJoinResponseMsg(), DtFedExec::sendMultiNameReservedMsg(), DtFedExec::sendNameReservedMsg(), DtRtiExec::sendReportFederationsMsg(), DtRidFileTester::sendRequestForTesting(), DtFedExec::sendResignMsg(), DtFedExec::sendRestoreStatus(), DtRtiExec::sendRtiExecHandshakeMsg(), DtFedExec::sendSaveInitiateConstrainedMsg(), DtFedExec::sendSaveInitiateMsg(), DtFedExec::sendSaveResponse(), DtFedExec::sendSaveStatus(), sendStampedUtilityFunction(), DtFedExec::sendSyncPointMsg(), DtFedExec::sendSyncPointStatusReport(), DtFedExec::sendTransferRidParamsMsg(), and DtSmConnectionMgr::~DtSmConnectionMgr().

void DtConnectionMgr::sendLoopback ( DtRtiMsg msg) [virtual]

Send a message to be processed by this federate.

Will not send to any other federates. NOTE: For now, this only works for TSO messages for time managed federates.

References DtRtiMsg::isConstrained(), myMsgQueue, and DtRtiMsgQueue::queueMsg().

Called by the rtiExec when it is exiting, only if it started this forwarder.

References myIsFederate, reliableConn(), and send().

Referenced by DtRtiExec::cleanupConstructorException(), and DtRtiExec::shutdownForwarderIfCreated().

int DtConnectionMgr::sendStamped ( const DtRtiMsg msg,
MAKRti::DtTransportType  transport,
const MAKRti::DtInetAddr &  addr = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]

Send a message stamped with fedEx name and federate ID Retraction record of timestamped messages made here.

References sendStampedUtilityFunction().

Referenced by DtFederateMgr::reportLatencyTestResults(), and DtFederateMgr::reportLatencyTestStatus().

int DtConnectionMgr::sendStampedAndDelete ( DtRtiMsg msg,
MAKRti::DtTransportType  transport,
const MAKRti::DtInetAddr &  addr = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]
int DtConnectionMgr::sendStampedAnonymous ( const DtRtiMsg msg,
MAKRti::DtTransportType  transport,
const MAKRti::DtInetAddr &  addr = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]

Send a message stamped with fedEx name, but not federate ID Does not make retraction record of sent messages.

References sendStampedUtilityFunction().

int DtConnectionMgr::sendStampedAnonymousAndDelete ( DtRtiMsg msg,
MAKRti::DtTransportType  transport,
const MAKRti::DtInetAddr &  addr = MAKRti::DtInetAddr::inaddrAny() 
) [virtual]

Send and delete a message stamped with fedEx name, but not federate ID Does not make retraction record of sent messages.

References sendStampedUtilityFunction().

Referenced by DtInteractionMgr::sendInteractionMsg(), DtObjectMgr::sendRegisterMsg(), DtFedExec::sendSyncPointReport(), and DtObjectMgr::sendUpdateMessage().

int DtConnectionMgr::sendStampedUtilityFunction ( DtRtiMsg msg,
MAKRti::DtTransportType  transport,
bool  performDelete,
bool  isAnonymous,
const MAKRti::DtInetAddr &  addr 
) [protected, virtual]
unsigned long DtConnectionMgr::sequenceNumber ( ) const [virtual]

Get the next sequence number.

References mySentMsgCount.

unsigned long DtConnectionMgr::serviceCallCount ( ) const [virtual]

Return service call counter.

References myServiceCallCount.

Referenced by send().

Called by RTI Ambassador services query if mutex was set using lockServiceCall()

References myLockService.

Referenced by DtAsyncConnectionMgr::wait(), DtSmConnectionMgr::wait(), and wait().

Register a creator function.

When set, it will be used to create the Connection Manager.

References DtBindCreator(), and theCreator.

void DtConnectionMgr::setEvokingCallbacks ( bool  evokingCbs) [virtual]

Set/Get the evoke callbacks state.

References myEvokingCallbacks.

Referenced by DtAsyncConnectionMgr::processPendingMsgMakeCallbacks(), and setProcessingTick().

set federate handle ( this is used by restore and should not be called otherwise )

References bestEffortConn(), myFederateHandle, reliableConn(), and DtRtiConnection::setFederateHandle().

Referenced by DtRtiExecFederateMgr::processRestoreEnd().

void DtConnectionMgr::setFederateMgr ( DtFederateMgr fedMgrPtr) [virtual]

Set the federate manager.

Reimplemented in DtAsyncConnectionMgr.

References myFedMgr.

Referenced by DtFederateMgr::DtFederateMgr().

Register alternate internal creators.

The RTI proper uses this function to choose from various internal implementations. This function should not be used by plugins as the assignment may be overridden internally. Use the setCreatorFunction.

References theInternalCreator.

Referenced by DtRtiExec::DtRtiExec(), and DtRtiAmbassadorBaseImplementor::setupConnection().

void DtConnectionMgr::setMetadataControl ( DtMetadataType  type,
bool  onOff 
) [virtual]
void DtConnectionMgr::setMsgFactory ( DtRtiMsgFactory fact) [virtual]

Get/Set the message factory.

Reimplemented in DtSmConnectionMgr.

References bestEffortConn(), myMsgFactory, reliableConn(), and DtRtiConnection::setMsgFactory().

Referenced by DtConnectionMgr().

void DtConnectionMgr::setMsgQueue ( DtRtiMsgQueue msgQueuePtr) [virtual]

References myMsgQueue.

void DtConnectionMgr::setProcessingTick ( bool  processingTick) [virtual]

Set/Get tick processing state.

References myProcessingTick, processingTick(), and setEvokingCallbacks().

void DtConnectionMgr::setRestoreInProgress ( bool  saveIsInProgress) [virtual]
void DtConnectionMgr::setRetractList ( DtRetractInfoList listPtr) [virtual]

References myRetractList.

void DtConnectionMgr::setSaveInProgress ( bool  saveIsInProgress) [virtual]
bool DtConnectionMgr::setupSelectParams ( DtSelectParam *  params) [virtual]

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.

Reimplemented in DtSmConnectionMgr.

References bestEffortConn(), and reliableConn().

Referenced by doWait().

Test if autoprovide delay time has expired.

When the delay has expired, the current tick will allow autoprovides.

References myMessageThrottle, and DtMessageThrottle::testAutoProvideDelay().

Referenced by DtFederateMgr::posttick().

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 myMessageThrottle, and DtMessageThrottle::testTransmitDelay().

Referenced by DtFederateMgr::posttick().

bool DtConnectionMgr::tick ( ) [virtual]
bool DtConnectionMgr::wait ( MAKRti::DtTime  periodInSeconds,
bool  unlockWhileWaiting = false 
) [virtual]

Wait for data to be ready or the given period of time to expire Return boolean: data is ready for reading?

Reimplemented in DtSmConnectionMgr, and DtAsyncConnectionMgr.

References doWait(), enterServiceCall(), exitServiceCall(), inServiceCall(), lockServiceCall(), serviceCallLocked(), and unlockServiceCall().

Referenced by DtRtiExec::wait().

void DtConnectionMgr::yield ( ) [virtual]

Member Data Documentation

Metadata control indicators.

Referenced by initParams(), isMetadataEnabled(), and setMetadataControl().

Extend auto provide delay to all attribute update requests.

Referenced by allProvideUpdateRequestsDelayed(), and initParams().

The assistant client.

Referenced by createRelConn(), and initConnections().

DtMutex* DtConnectionMgr::myCallbackMutex [protected]
MAKRti::DtClock DtConnectionMgr::myClock [protected]
unsigned long DtConnectionMgr::myConnectionId [protected]

"unique" identifier for this connMgr (if there is a good source of unique ids)

Referenced by connectionId(), createRelConn(), DtSmConnectionMgr::initConnections(), initConnections(), repairFederationConnection(), and DtSmConnectionMgr::~DtSmConnectionMgr().

Default message factory.

Referenced by DtConnectionMgr().

Indicates if callbacks are being evoked.

Referenced by evokingCallbacks(), and setEvokingCallbacks().

MAKRti::DtString DtConnectionMgr::myFedExName [protected]
unsigned int DtConnectionMgr::myInService [protected]
MAKRti::DtTransportType DtConnectionMgr::myInternalTransportType [protected]
unsigned int DtConnectionMgr::myLockService [protected]

Factories for creating logical time instances.

Referenced by addLogicalTimeFactory(), logicalTimeFactory(), and removeLogicalTimeFactory().

The message factory.

Referenced by msgFactory(), DtSmConnectionMgr::setMsgFactory(), and setMsgFactory().

std::map<MAKRti::DtInetAddr, DtMulticastEntry*> DtConnectionMgr::myMulticastGroups [protected]

Indicates if message is being processed.

Referenced by processMsg(), send(), and DtAsyncConnectionMgr::setMessageTracking().

Tick processing state.

Referenced by processingTick(), and setProcessingTick().

unsigned long DtConnectionMgr::myReceivedMsgCount [protected]
unsigned long DtConnectionMgr::mySentMsgCount [protected]
unsigned long DtConnectionMgr::myServiceCallCount [protected]

Service call counter - increment before processing each service call.

Referenced by incrementServiceCallCount(), serviceCallCount(), and DtAsyncConnectionMgr::setMessageTracking().

unsigned long DtConnectionMgr::mySizeMismatchCount [protected]

The count of message size mismatches.

Referenced by processReadResult().

Referenced by processReadResult().

unsigned long DtConnectionMgr::myVersionConflictCount [protected]

The count of message version conflicts.

Referenced by processReadResult().

Referenced by processReadResult().

MAKRti::DtList DtConnectionMgr::myWorkingMsgId [protected]

The plugin creator.

Referenced by DtRtiShmQNetMgr::create(), create(), and setCreatorFunction().

The internal creator.

Referenced by create(), and setInternalCreatorFunction().


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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)