![]() |
MAK RTIspy API Documentation for HLA 1516
|
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: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 DtRIDParameters * | params () |
| Get a pointer to the RID parameters. | |
| virtual void | setFederateMgr (DtFederateMgr *fedMgrPtr) |
| Set the federate manager. | |
| virtual void | shutdown () |
| Request shutdown of communication activities. | |
| virtual bool | isShuttingDown () |
| Shutdown acknowledged. | |
| 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 DtRtiMsg * | getMessage () |
| 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 | |
| DtFederateMgr * | fedMgr () |
| The federate manager. | |
| DtPartnerMgr * | partnerMgr () |
| 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 DtRtiMsg * | create (DtRtiMsgKind kind) |
| Request the RTI message factory for a msg. | |
| virtual void | setMsgFactory (DtRtiMsgFactory *fact) |
| Get/Set the message factory. | |
| virtual DtRtiMsgFactory * | msgFactory () 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::FederateAmbassador * | fedAmb () 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 DtFedAmbWrapper * | removeFedAmbWrapper (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 DtLogicalTimeFactory * | logicalTimeFactory (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 DtRtiMsgQueue * | msgQueue () |
| Set/Get the time managed message queue. | |
| virtual void | setMsgQueue (DtRtiMsgQueue *msgQueuePtr) |
| virtual DtRetractInfoList * | retractList () |
| 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 DtRtiMsg * | nextPendingMsg () |
| 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 DtRtiConnection * | reliableConn () const |
| Returns the connection created by createTcpConn(). | |
| virtual DtRtiConnection * | bestEffortConn () 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 DtConnectionMgr * | create (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 | |
| DtRtiMsgFactory * | myMsgFactory |
| The message factory. | |
| DtRtiConnection * | myBestEffortConn |
| The best effort connection. | |
| DtRtiConnection * | myPrimaryReliableConn |
| The primary reliable connection. | |
| DtRtiConnectionList | myReliableConns |
| DtRIDParameters * | myParams |
| The RTI initialization parameters. | |
| DtFederateMgr * | myFedMgr |
| 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. | |
| DtRtiMsgQueue * | myMsgQueue |
| Message queue. | |
| DtRetractInfoList * | myRetractList |
| 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. | |
| DtMessageThrottle * | myMessageThrottle |
| 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 |
| DtPartnerMgr * | myPartnerMgr |
| 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. | |
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! | |
| DtConnectionMgr & | operator= (DtConnectionMgr const &) |
| Assignment not implemented – Assignment Not Allowed! | |
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.
| typedef DtConnectionMgr*(* DtConnectionMgr::DtConnectionMgrCreator)(DtRIDParameters *p, bool isFederate, DtBoost::shared_ptr< DtRtiAssistantLrcClient > assistantClient) |
Connection Manager Creator.
|
protected |
List of all reliable connections (for forwarder load balancing)
|
protected |
Constructor is performed through create.
References DtBindMessage(), myDfltMsgFactory, myPartnerMgr, and setMsgFactory().
Referenced by create().
|
virtual |
Destructor.
References DtMulticastEntry::addr, DtMessageThrottle::clear(), destroyAncillaryRelConns(), destroyBestEffortConn(), destroyRelConn(), emptyPendingMsgList(), forceDropMulticastGroup(), myFedAmbChain, myMessageThrottle, myMulticastGroups, myPartnerMgr, DtMulticastEntry::netInterface, NULL, and DtFedAmbWrapperChain::reset().
|
private |
Copy Constructor not implemented – Copy Not Allowed!
|
virtual |
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().
|
virtual |
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().
|
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().
|
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().
|
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().
|
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(), DtRtiExecDisconnectMsg::addCallback(), DtSaveBegunMsg::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(), DtUnpubObjMsg::addCallback(), DtForwarderConnectionLostMsg::addCallback(), DtReqDiscObjMsg::addCallback(), DtUnsubObjMsg::addCallback(), DtRestoreEndMsg::addCallback(), DtSaveFinishedMsg::addCallback(), DtPubObjMsg::addCallback(), DtMacAddrMsg::addCallback(), DtNetworkMapRspMsg::addCallback(), DtResignDirectiveMsg::addCallback(), DtWwwFederateStateReqMsg::addCallback(), DtForwarderPingMsg::addCallback(), DtForwarderResignMsg::addCallback(), DtDestroyResponseMsg::addCallback(), DtFedAmbCallbackMsg::addCallback(), DtForwarderPortMsg::addCallback(), DtInteractionRoMsg::addCallback(), DtSmEnrollmentMsg::addCallback(), DtReportFederationsMsg::addCallback(), DtMultiNameReservedMsg::addCallback(), DtSaveTimeMsg::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(), DtRegObjMsg::addCallback(), DtWwwStateRspMsg::addCallback(), DtForwarderCounterMsg::addCallback(), DtSaveResponseMsg::addCallback(), DtRtiExecHandshakeMsg::addCallback(), DtDiscObjMsg::addCallback(), DtFomModuleRequestMsg::addCallback(), DtRtiExecConnectMsg::addCallback(), DtWwwFederateStateRspMsg::addCallback(), DtSyncPointQueryMsg::addCallback(), DtMcastConfigureMsg::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(), DtJoinResponseMsg::addCallback(), and DtNetStatsMonitor::DtNetStatsMonitor().
|
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().
|
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.
| bool DtConnectionMgr::allProvideUpdateRequestsDelayed | ( | ) | const |
Return true if all provide update calls should be delayed (not just auto provide).
References myAllProvideUpdateRequestsDelayed.
Referenced by DtObjectMgr::processRequest().
|
protectedvirtual |
Report number of ancillary reliable connections successfully established.
References myReliableConns.
Referenced by initConnections().
|
virtual |
Returns the connection created by createBestEffortConn().
References myBestEffortConn.
Referenced by connectFederation(), disconnectFederation(), DtSmConnectionMgr::dropMulticastGroup(), dropMulticastGroup(), flush(), DtSmConnectionMgr::forceDropMulticastGroup(), forceDropMulticastGroup(), getMessage(), hasTransport(), DtRtiShmQNetMgr::init(), initConnections(), DtSmConnectionMgr::listenToMulticastGroup(), listenToMulticastGroup(), processConnections(), readFileDescriptor(), DtAsyncConnectionMgr::receivePackets(), send(), DtAsyncConnectionMgr::sendPackets(), setFederateHandle(), setMsgFactory(), setupSelectParams(), and DtAsyncConnectionMgr::workerThread().
|
protectedvirtual |
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().
|
virtual |
The LRC associates its federation information with its network connections.
If the LRC is communicating with the rtiexec through a reliable connection, then the best effort connection is created here.
Reimplemented in DtAsyncConnectionMgr.
References addLogicalTimeFactory(), bestEffortConn(), DtMessageThrottle::clear(), createBestEffortConn(), DtRIDParameters::destAddr(), DtRIDParameters::DtFomTransportTypeUseReliable, fedExHandle(), fedExName(), DtFedAmbWrapperChain::init(), myFedAmbChain, myFederateHandle, myFedExHandle, myFedExName, myMessageThrottle, myParams, myReliableConns, DtRIDParameters::networkInterfaceAddr(), params(), reliableConn(), DtRtiConnection::setFederateHandle(), DtRtiConnection::setFedExHandle(), and DtRtiConnection::setFedExName().
|
virtual |
Return connection ID.
References myConnectionId.
Referenced by createAncillaryRelConns(), DtFedexTakeFileCmd::createNamesOnlyTakeFileEvent(), createRelConn(), destroyRelConn(), DtRtiExecFederateMgr::initRidTester(), DtSimpleFederateMgr::joinFederationExecution(), DtRtiExecFederateMgr::processCreateResponseMsg(), DtRtiExecFederateMgr::processFomModuleFileRequestMsg(), DtFedExec::processJoin(), DtRtiExec::processRtiExecHandshakeMsg(), repairFederationConnection(), and DtRtiExec::rtiExecToForwarderHandshake().
|
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(), DtFedExec::processJoin(), 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().
|
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, DtSmConnectionMgr, and DtNetStatsAsyncConnMgr.
References DtConnectionMgr(), init(), params(), theCreator, and theInternalCreator.
|
protectedvirtual |
Create ancillary reliable connections; Returns count of successful connections.
References addPendingMsg(), connectionId(), DtConnectMsgKind, DtMetadataTypeTransport, DtNET_READ_NO_PACKETS, DtTcpMsgSocket::enableBundling(), DtTcpMsgSocket::enableCompression(), DtRIDParameters::forwarderGroupAddrs(), DtTcpMsgSocket::isConnected(), isMetadataEnabled(), isTcpCompressionEnabled, msgFactory(), DtRtiMsg::msgKind(), myClock, myParams, myReliableConns, DtRtiConnection::netRead(), DtTcpMsgSocket::openClientSocket(), params(), processMsg(), processReadResult(), DtRIDParameters::responseInterval, DtRtiConnection::send(), DtRtiMtdTransportType::set(), DtConnectConfirmMsg::setBundleSize(), DtConnectConfirmMsg::setBundlingEnabled(), DtConnectConfirmMsg::setCompressionEnabled(), DtConnectConfirmMsg::setCompressionLevel(), DtRtiConnection::setConnId(), DtRtiConnection::setMsgFactory(), DtTcpMsgSocket::setNonBlocking(), DtMsgSocket::setRecvBufferSize(), DtMsgSocket::setSendBufferSize(), DtRtiMsg::setTransportType(), DtRtiConnection::socket(), socketReceiveBufferSize, socketSendBufferSize, and tcpCompressionLevel.
Referenced by initConnections().
|
protectedvirtual |
Create best effort connection; Returns true if successful Could be that it already exist in which case it is still used.
References DtGsRtiConnection::addRemoteSite(), bestEffortSendRetryWaitUsec, DtMulticastEntry::count, DtRIDParameters::destAddr(), DtRIDParameters::destinationAddrs(), DtUdpMsgSocket::enableBundling(), DtUdpMsgSocket::enableCompression(), DtUdpMsgSocket::isOpen(), DtRIDParameters::isUdpCompressionEnabled, mcastTtl, msgFactory(), myBestEffortConn, myMulticastGroups, myParams, DtRIDParameters::networkInterfaceAddr(), DtUdpMsgSocket::openSocket(), params(), DtUdpMsgSocket::setMcastTtlOption(), DtRtiConnection::setMsgFactory(), DtMsgSocket::setRecvBufferSize(), DtUdpMsgSocket::setRetryOnSend(), DtMsgSocket::setSendBufferSize(), socketReceiveBufferSize, socketSendBufferSize, udpCompressionLevel, and DtRIDParameters::useGroupSocket().
Referenced by connectFederation(), and initConnections().
|
protectedvirtual |
Create reliable connection; Returns true if successful.
References addPendingMsg(), connectionId(), destroyRelConn(), DtConnectMsgKind, DtNET_READ_NO_PACKETS, DtTcpMsgSocket::enableBundling(), DtTcpMsgSocket::enableCompression(), DtTcpMsgSocket::isConnected(), isTcpCompressionEnabled, msgFactory(), DtRtiMsg::msgKind(), myAssistantClient, myClock, myConnectionId, myPrimaryReliableConn, myReliableConns, DtRtiConnection::netRead(), NULL, DtTcpMsgSocket::openClientSocket(), params(), processMsg(), processReadResult(), reliableConn(), DtRIDParameters::responseInterval, send(), DtConnectConfirmMsg::setBundleSize(), DtConnectConfirmMsg::setBundlingEnabled(), DtConnectConfirmMsg::setCommandArgs(), DtConnectConfirmMsg::setCompressionEnabled(), DtConnectConfirmMsg::setCompressionLevel(), DtRtiConnection::setConnId(), DtRtiConnection::setMsgFactory(), DtTcpMsgSocket::setNonBlocking(), DtConnectConfirmMsg::setProcessId(), DtConnectConfirmMsg::setProcessName(), DtMsgSocket::setRecvBufferSize(), DtMsgSocket::setSendBufferSize(), DtRtiMsg::setTransportType(), socketReceiveBufferSize, socketSendBufferSize, tcpCompressionLevel, tcpPort, and useRtiExec.
Referenced by initConnections(), and repairFederationConnection().
|
virtual |
Return true if autoprovides should be delayed.
References DtMessageThrottle::delayAutoProvide(), and myMessageThrottle.
Referenced by DtObjectMgr::processRequest().
|
virtual |
Return true if retransmission of internal state should be delayed.
References DtMessageThrottle::delayTransmit(), and myMessageThrottle.
Referenced by DtInteractionMgr::processPub().
|
protectedvirtual |
Destroy the given ancillary reliable connection.
Reimplemented in DtAsyncConnectionMgr.
References myReliableConns, and DtRtiConnection::socket().
Referenced by processConnections().
|
protectedvirtual |
Destroy ancillary reliable connections.
Reimplemented in DtAsyncConnectionMgr.
References myPrimaryReliableConn, myReliableConns, and DtRtiConnection::socket().
Referenced by ~DtConnectionMgr().
|
protectedvirtual |
Destroy best effort connection.
References myBestEffortConn, and DtRtiConnection::socket().
Referenced by ~DtConnectionMgr().
|
protectedvirtual |
Destroy reliable connection.
Reimplemented in DtAsyncConnectionMgr.
References connectionId(), drainBacklog(), DtDeleteSocketMsgKind, flushTimeoutInterval, DtRtiConnection::isOk(), DtRtiMsg::msgKind(), myClock, myPrimaryReliableConn, myReliableConns, DtRtiConnection::netRead(), params(), DtRtiConnection::send(), and DtRtiConnection::socket().
Referenced by createRelConn(), processConnections(), repairFederationConnection(), send(), and ~DtConnectionMgr().
|
virtual |
The LRC disassociates its connections from the federation.
If the LRC is communicating with the rtiexec through a reliable connection, then the best effort connection is destroyed here.
Reimplemented in DtSmConnectionMgr, and DtAsyncConnectionMgr.
References DtMulticastEntry::addr, bestEffortConn(), DtMessageThrottle::clear(), emptyPendingMsgList(), forceDropMulticastGroup(), listenToMulticastGroup(), myBestEffortConn, myFedAmbChain, myFederateHandle, myFedExHandle, myFedExName, myMessageThrottle, myMsgQueue, myMulticastGroups, myReceivedMsgCount, myRestoreInProgress, myRetractList, mySaveInProgress, mySentMsgCount, myWorkingMsgId, DtMulticastEntry::netInterface, params(), reliableConn(), removeLogicalTimeFactory(), DtFedAmbWrapperChain::reset(), DtRtiConnection::setFederateHandle(), DtRtiConnection::setFedExHandle(), DtRtiConnection::setFedExName(), DtRtiConnection::socket(), and useRtiExec.
Referenced by DtFederateMgr::~DtFederateMgr().
|
protectedvirtual |
perform actual wait. Called by wait
Reimplemented in DtAsyncConnectionMgr.
References params(), and setupSelectParams().
Referenced by wait().
|
virtual |
Attempts to flush backlogged messages repeatedly until either all messages are sent or the timeout expires.
References flush(), and myClock.
Referenced by destroyRelConn().
|
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(), DtRIDParameters::distributedUdpForwarderMode, DtMcastConfigureMsgKind, DtMcastDrop, myFederateHandle, myInternalTransportType, myMulticastGroups, myParams, sendStampedAndDelete(), DtMcastConfigureMsg::set(), and DtRtiConnection::socket().
Referenced by forceDropMulticastGroup(), DtInteractionMgr::removeClassMulticast(), and DtObjectMgr::removeClassMulticast().
|
virtual |
Add/get/process a pending message Messages will be processed during the next tick.
References myPendingMessages.
Referenced by DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), DtRtiExecFederateMgr::processRestoreEnd(), DtRtiExecFederateMgr::restore(), ~DtConnectionMgr(), and DtSmConnectionMgr::~DtSmConnectionMgr().
|
virtual |
Enables or disables smart forwarding.
References DtRtiMtdDestinationList::setMaxDestinations(), and DtRtiMsg::setSmartForwardingEnabled().
Referenced by DtRtiExecFederateMgr::applyRidParameters(), and initParams().
|
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(), DtRtiExecFederateMgr::waitForCreateResponse(), and DtRtiExecFederateMgr::waitForJoinResponse().
|
virtual |
Set/Get the evoke callbacks state.
References myEvokingCallbacks.
|
virtual |
Called by RTI Ambassador services to release mutually exclusive access to RTI managers.
References myCallbackMutex, and myInService.
Referenced by DtRtiExecFederateMgr::destroyFederationExecution(), DtRtiAmbassadorBaseImplementor::exitServiceCall(), DtRtiExecFederateMgr::requestImmediateSave(), DtAsyncConnectionMgr::wait(), DtSmConnectionMgr::wait(), wait(), DtRtiExecFederateMgr::waitForCreateResponse(), and DtRtiExecFederateMgr::waitForJoinResponse().
|
virtual |
Return pointer to Federate Ambassador.
Referenced by DtObjectMgr::discoverObject(), DtFederateMgr::federateAmbassador(), DtRtiExecFederateMgr::initiateSave(), DtObjectMgr::invokePendingDivestNotification(), DtObjectMgr::invokeReflect(), DtRtiExecFederateMgr::posttick(), DtAsyncConnectionMgr::processCallbackMsg(), DtObjectMgr::processConfirmCancelAcquire(), DtObjectMgr::processDelete(), DtInteractionMgr::processInteraction(), DtObjectMgr::processNotifyAcquire(), DtObjectMgr::processOwnership(), DtObjectMgr::processResign(), DtRtiExecFederateMgr::processRestore(), DtRtiExecFederateMgr::processRestoreEnd(), DtRtiExecFederateMgr::processRestoreInitiate(), DtRtiExecFederateMgr::processRestoreReply(), DtRtiExecFederateMgr::processSaveFinished(), DtRtiExecFederateMgr::processSyncPointMsg(), DtObjectMgr::queryOwnership(), DtObjectMgr::releaseOwnership(), DtObjectMgr::sendPendingRemovals(), DtObjectMgr::sendPendingRequestAttributes(), DtInteractionMgr::sendPendingStartInters(), DtObjectMgr::sendPendingStartReg(), DtObjectMgr::sendPendingStartUpdates(), DtInteractionMgr::sendPendingStopInters(), DtObjectMgr::sendPendingStopReg(), DtObjectMgr::sendPendingStopUpdates(), DtObjectMgr::setAttributeTransportType(), DtObjectMgr::turnUpdatesOff(), and DtObjectMgr::turnUpdatesOn().
|
virtual |
Return federation execution handle.
References myFedExHandle.
Referenced by DtSmConnectionMgr::connectFederation(), connectFederation(), logicalTimeFactory(), repairFederationConnection(), and sendStampedUtilityFunction().
|
virtual |
Return federation execution name.
References myFedExName.
Referenced by DtSmConnectionMgr::connectFederation(), connectFederation(), and sendStampedUtilityFunction().
|
virtual |
Return federate handle.
References myFederateHandle.
Referenced by DtInteractionMgr::acceptInteraction(), DtInitiatorLatencyTest::currTestId(), DtPartnerMgr::federateHandle(), handleMsg(), DtObjectMgr::nextOffsetId(), DtObjectMgr::processDelete(), DtRtiExecFederateMgr::processDesignatedFederateMsg(), DtObjectMgr::processDiscover(), DtObjectMgr::processGiveToLrc(), DtObjectMgr::processNotifyAcquire(), DtObjectMgr::processOwnership(), processPendingMsg(), DtInteractionMgr::processPub(), DtObjectMgr::processPub(), DtObjectMgr::processRegister(), DtObjectMgr::processRequest(), DtObjectMgr::processRequestDiscover(), DtTestManager::processResign(), DtInteractionMgr::processResign(), DtFederateMgr::processResign(), DtRtiExecFederateMgr::processSaveResponse(), DtTestManager::processSub(), DtInteractionMgr::processSub(), DtInteractionMgr::processUnpub(), DtObjectMgr::processUnpub(), DtTestManager::processUnsub(), DtInteractionMgr::processUnsub(), DtObjectMgr::processUpdate(), DtObjectMgr::registerObj(), sendStampedUtilityFunction(), and DtInitiatorLatencyTest::takeCompletedTestReport().
| DtFederateMgr * DtConnectionMgr::fedMgr | ( | ) |
The federate manager.
Warning: Will return a null pointer when connection manager is not used by an LRC.
References myFedMgr.
Referenced by DtPartnerMgr::processPartnerReject().
|
virtual |
Send buffered messages.
Returns indication of whether the flush is complete or incomplete.
Reimplemented in DtAsyncConnectionMgr, and DtSmConnectionMgr.
References bestEffortConn(), DtMsgSocket::flush(), DtRtiConnection::flush(), reliableConn(), and DtRtiConnection::socket().
Referenced by DtRtiExec::cleanupConstructorException(), drainBacklog(), getMessage(), processConnections(), DtRtiExec::shutdownForwarderIfCreated(), and tick().
|
virtual |
Process queued messages.
References DtMessageThrottle::flush(), and myMessageThrottle.
|
virtual |
Override listen count and force drop multicast address.
Listen count goes to zero.
Reimplemented in DtSmConnectionMgr.
References bestEffortConn(), create(), DtRIDParameters::distributedUdpForwarderMode, dropMulticastGroup(), DtMcastConfigureMsgKind, DtMcastDrop, myFederateHandle, myInternalTransportType, myMulticastGroups, myParams, sendStampedAndDelete(), DtMcastConfigureMsg::set(), and DtRtiConnection::socket().
Referenced by disconnectFederation(), and ~DtConnectionMgr().
|
virtual |
Get a message if one exists Message must be destroyed by caller.
Reimplemented in DtAsyncConnectionMgr, DtSmConnectionMgr, and DtNetStatsAsyncConnMgr.
References DtTestManager::addReceiveTimeStampIfNecessary(), bestEffortConn(), DtRtiMsg::cloneWithTransport(), DtNET_READ_NO_PACKETS, flush(), myFedMgr, DtRtiConnection::netRead(), processReadResult(), reliableConn(), DtRtiMsg::setTransportType(), and DtFederateMgr::testMgr().
|
virtual |
Handle this message by either processing it or queuing it if save pending.
Return the status of processing the message
Reimplemented in DtAsyncConnectionMgr.
References addPendingMsg(), DtRtiMsg::cloneWithTransport(), DtNET_QUEUED_PACKET, DtNET_READ_SUCCESS, DtRtiMsg::federateHandle(), fedHandle(), DtRtiMsg::isAllowedDuringSave(), DtRtiMsg::isConstrained(), momProcessMsg(), myMsgQueue, processMsg(), DtRtiMsgQueue::queueMsg(), restoreInProgress(), and saveInProgress().
Referenced by DtSmConnectionMgr::processConnection(), processConnection(), DtObjectMgr::sendRegisterMsg(), and DtObjectMgr::sendUpdateMessage().
|
virtual |
returns true if the specified transport type is available
References bestEffortConn(), and reliableConn().
|
virtual |
Increment the sequence number.
References mySentMsgCount.
Referenced by DtObjectMgr::sendRegisterMsg(), and DtObjectMgr::sendUpdateMessage().
|
virtual |
Increment a counter to identify the service call being processed.
Return the incremented value
References myServiceCallCount.
Referenced by DtRtiAmbassadorBaseImplementor::incrementServiceCallCount().
|
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, DtRIDParameters::notifyLevel, and params().
Referenced by DtRtiShmQNetMgr::create(), create(), and DtSmConnectionMgr::createQMgr().
|
protectedvirtual |
Initialize the RTI's exercise connections Users who wish to override the MAK RTI's network connections should override this function.
Reimplemented in DtSmConnectionMgr.
References ancillaryReliableConnsCount(), bestEffortConn(), DtRIDParameters::configureConnectionWithRid, createAncillaryRelConns(), createBestEffortConn(), createRelConn(), DtRIDParameters::destAddr(), DtRIDParameters::DtFomTransportTypeUseBestEffort, DtRIDParameters::DtFomTransportTypeUseFomSettings, DtRIDParameters::DtFomTransportTypeUseReliable, DtRIDParameters::forceParametersToCompliance(), DtRIDParameters::forwarderGroupSize(), DtRIDParameters::getFullPathToRidFile(), DtRIDParameters::isFullyCompliant(), lm, myAssistantClient, myConnectionId, myInternalTransportType, myIsFederate, myParams, DtRIDParameters::networkInterfaceAddr(), DtRIDParameters::networkInterfaceAddrString(), params(), DtAssistantPopupHelper::popupAssistantMessage(), reliableConn(), DtRIDParameters::revertComplianceParametersToOriginalSettings(), DtRIDParameters::sanityCheckReliableConnRIDParameters(), DtRIDParameters::sanityCheckRIDParameters(), DtRIDParameters::setNetworkInterfaceAddr(), DtRIDParameters::setTcpForwarderAddr(), DtRIDParameters::tcpForwarderAddr(), DtRIDParameters::tcpForwarderAddrString(), DtRIDParameters::tcpPort, tcpPort, and DtRIDParameters::useRtiExec.
Referenced by init().
|
virtual |
Initialize the parameters used by the connection manager.
This function is automatically called by init
References DtRIDParameters::allProvideUpdateRequestsDelayed, DtRIDParameters::distributedUdpForwarderMode, enableSmartForwarding(), DtRIDParameters::maxNumFederates, myAddMcastMetadata, myAddTransportTypeMetadata, myAllProvideUpdateRequestsDelayed, myMessageThrottle, myParams, DtInteractionMsg::setChannelIncluded(), DtUpdateMsg::setChannelIncluded(), DtRtiMsg::setUse32BitsForValueSize(), and DtRIDParameters::transmitDelay.
Referenced by init().
|
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().
|
virtual |
Returns the TransportType associated for the internal connection.
References myInternalTransportType.
Referenced by DtForwarderFaultManager::disconnectFederates(), DtForwarderFaultManager::pingForwarder(), DtForwarderFaultManager::resignForwarder(), DtPartnerMgr::sendJoinMessage(), DtPartnerMgr::sendPartnerMessage(), and DtSmConnectionMgr::~DtSmConnectionMgr().
|
virtual |
References DtMetadataTypeMcastAddr, DtMetadataTypeTransport, myAddMcastMetadata, and myAddTransportTypeMetadata.
Referenced by createAncillaryRelConns(), DtSmConnectionMgr::send(), send(), and DtAsyncConnectionMgr::sendPackets().
|
virtual |
Shutdown acknowledged.
References myShuttingDown.
Referenced by DtRtiAmbassadorBaseImplementor::shutdown().
|
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(), DtRIDParameters::distributedUdpForwarderMode, DtMcastConfigureMsgKind, DtMcastListen, myFederateHandle, myInternalTransportType, myMulticastGroups, myParams, sendStampedAndDelete(), DtMcastConfigureMsg::set(), and DtRtiConnection::socket().
Referenced by DtInteractionMgr::addClassMulticast(), DtObjectMgr::addClassMulticast(), and disconnectFederation().
|
virtual |
Called by asynchronous processing thread to gain mutually exclusive access to RTI managers.
References myCallbackMutex, and myLockService.
Referenced by DtAsyncConnectionMgr::handleMsg(), DtAsyncConnectionMgr::processMsgQueueCallbacks(), DtAsyncConnectionMgr::processPendingMsgMakeCallbacks(), DtAsyncConnectionMgr::processPendingMsgQueueCallbacks(), DtAsyncConnectionMgr::wait(), DtSmConnectionMgr::wait(), wait(), and DtAsyncConnectionMgr::workerThread().
|
virtual |
Get the factory for the given federation that can create logical time/interval instances.
References fedExHandle(), and myLogicalTimeFactories.
Referenced by DtRtiShmQNetMgr::processMsg(), processMsg(), DtObjectMgr::retainTsoDeletedObj(), DtObjectMgr::retainTsoRemovedObj(), DtSmConnectionMgr::send(), DtAsyncConnectionMgr::send(), send(), and DtAsyncConnectionMgr::sendAndDelete().
|
virtual |
apply MOM callbacks to message
References DtNET_READ_SUCCESS, DtRtiMsg::msgKind(), myMomMsgCbMgr, DtMessageCallbackManager< T_Message, T_MessageKind >::numCallbacks(), and DtMessageCallbackManager< T_Message, T_MessageKind >::processMsg().
Referenced by handleMsg().
|
virtual |
References myMsgFactory.
Referenced by create(), createAncillaryRelConns(), createBestEffortConn(), createRelConn(), DtSmConnectionMgr::createSharedMemConn(), DtFedExec::processFedFileRequestMsg(), DtSynchronousFileDistributor::pullEntireFedFile(), DtFileDistributor::pushFedFile(), DtRtiExecFederateMgr::restore(), DtRtiExec::ridRequestCb(), and DtRidFileTester::sendRequestForTesting().
|
virtual |
Set/Get the time managed message queue.
References myMsgQueue.
|
virtual |
Add/get/process a pending message Messages will be processed during the next tick.
References myPendingMessages.
Referenced by DtRtiExecFederateMgr::save().
|
private |
Assignment not implemented – Assignment Not Allowed!
|
virtual |
Get a pointer to the RID parameters.
References myParams.
Referenced by checkRelConn(), connectFederation(), DtRtiShmQNetMgr::create(), create(), createAncillaryRelConns(), createBestEffortConn(), createRelConn(), destroyRelConn(), disconnectFederation(), DtAsyncConnectionMgr::doWait(), doWait(), init(), initConnections(), DtPartnerMgr::joinFederationExecution(), DtSmConnectionMgr::processConnections(), DtFedExec::processCreateReady(), DtFedExec::processJoin(), DtFedExec::processJoinConfirm(), DtFedExec::processJoinMsg(), DtFedExec::processJoinReady(), DtSynchronousFileDistributor::pullEntireFedFile(), DtSmConnectionMgr::repairFederationConnection(), repairFederationConnection(), DtAsyncConnectionMgr::send(), send(), DtAsyncConnectionMgr::sendAndDelete(), DtPartnerMgr::sendJoinMessage(), DtAsyncConnectionMgr::sendPackets(), DtAsyncConnectionMgr::setFederateMgr(), DtSmConnectionMgr::startSharedMemMgr(), DtFedExec::tickFederates(), updateBufferSizes(), and DtAsyncConnectionMgr::workerThread().
| DtPartnerMgr * DtConnectionMgr::partnerMgr | ( | ) |
Partner manager.
References myPartnerMgr.
Referenced by DtSimpleFederateMgr::joinFederationExecution().
|
virtual |
Add/get/process a pending message Messages will be processed during the next tick.
References myPendingMessages.
Referenced by DtRtiExecFederateMgr::save(), and DtAsyncConnectionMgr::workerThread().
|
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().
|
virtual |
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().
|
virtual |
Set/Get tick processing state.
References myProcessingTick.
Referenced by send(), DtAsyncConnectionMgr::setMessageTracking(), and setProcessingTick().
|
virtual |
this function applies the callbacks to the message
Reimplemented in DtRtiShmQNetMgr, and DtNetStatsAsyncConnMgr.
References DtPartnerMgr::acceptMessage(), DtNET_READ_FILTERED_PACKET, DtNET_READ_SUCCESS, DtRtiMsg::federateHandle(), DtRtiMsg::fedExHandle(), logicalTimeFactory(), DtRtiMsg::msgKind(), myClock, myFederateHandle, myFedMgr, myMsgCbMgr, myPartnerMgr, myProcessingMessage, myReceivedMsgCount, myWorkingMsgId, DtMessageCallbackManager< T_Message, T_MessageKind >::numCallbacks(), DtRtiMsg::print(), DtMessageCallbackManager< T_Message, T_MessageKind >::processMsg(), and DtFederateMgr::tickCount().
Referenced by createAncillaryRelConns(), createRelConn(), handleMsg(), processPendingMsg(), and repairFederationConnection().
|
virtual |
Add/get/process a pending message Messages will be processed during the next tick.
References DtRtiMsg::federateHandle(), fedHandle(), DtRtiMsg::isConstrained(), myMsgQueue, myPendingMessages, processMsg(), DtRtiMsgQueue::queueMsg(), restoreInProgress(), and saveInProgress().
Referenced by DtAsyncConnectionMgr::processPendingMsgMakeCallbacks(), DtAsyncConnectionMgr::processPendingMsgQueueCallbacks(), and tick().
|
virtual |
Process queued messages that are being sent at specified rate.
References myMessageThrottle, and DtMessageThrottle::processQueuedMessages().
Referenced by DtFederateMgr::posttick().
|
protectedvirtual |
Process read result to print error diagnostics for example.
References DtNET_READ_SIZE_MISMATCH, DtNET_READ_VERSION_MISMATCH, DtNET_READ_VERSION_UNKNOWN, myClock, mySizeMismatchCount, mySizeMismatchNoticationTimer, myVersionConflictCount, myVersionConflictNoticationTimer, and theReportReadErrorInterval.
Referenced by createAncillaryRelConns(), createRelConn(), DtSmConnectionMgr::getMessage(), getMessage(), DtNetStatsAsyncConnMgr::processConnection(), processConnection(), DtAsyncConnectionMgr::receivePacket(), and repairFederationConnection().
|
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().
|
virtual |
Returns the connection created by createTcpConn().
If no TCP/IP connection has been created, this will return NULL
References myPrimaryReliableConn.
Referenced by checkRelConn(), connectFederation(), createRelConn(), disconnectFederation(), flush(), getMessage(), hasTransport(), initConnections(), processConnections(), readFileDescriptor(), repairFederationConnection(), send(), DtAsyncConnectionMgr::sendPackets(), sendShutdownForwarderMsg(), setFederateHandle(), setMsgFactory(), setupSelectParams(), DtAsyncConnectionMgr::startAsynchronousProcessing(), and DtAsyncConnectionMgr::waitOnIO().
|
virtual |
Remove federate wrapper.
References myFedAmbChain, and DtFedAmbWrapperChain::removeWrapper().
Referenced by DtRtiAmbassadorBaseImplementor::removeFedAmbWrapper(), DtTestManager::resign(), DtAsyncConnectionMgr::~DtAsyncConnectionMgr(), and DtFederateMgr::~DtFederateMgr().
|
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().
|
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(), DtRtiExecDisconnectMsg::removeCallback(), DtSaveBegunMsg::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(), DtUnpubObjMsg::removeCallback(), DtForwarderConnectionLostMsg::removeCallback(), DtReqDiscObjMsg::removeCallback(), DtUnsubObjMsg::removeCallback(), DtRestoreEndMsg::removeCallback(), DtSaveFinishedMsg::removeCallback(), DtNetworkMapRspMsg::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(), DtSaveTimeMsg::removeCallback(), DtFedAmbCallbackMsg::removeCallback(), DtDeleteRoMsg::removeCallback(), DtCreateResponseMsg::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(), DtLatencyReportMsg::removeCallback(), DtSyncPointQueryMsg::removeCallback(), DtMcastConfigureMsg::removeCallback(), DtMulticastDiscoveryMsg::removeCallback(), DtTestMgrStatusMsg::removeCallback(), DtFomModuleDistributionMsg::removeCallback(), DtJoinLightWeightMsg::removeCallback(), DtChangeLatencyTestModeMsg::removeCallback(), DtConnectConfirmMsg::removeCallback(), DtResignMsg::removeCallback(), DtQueryTransportMsg::removeCallback(), DtCreateMsg::removeCallback(), DtRequestMsg::removeCallback(), DtForwarderNodeInfoMsg::removeCallback(), DtJoinMsg::removeCallback(), DtOwnershipMsg::removeCallback(), DtSyncPointMsg::removeCallback(), DtJoinResponseMsg::removeCallback(), and DtNetStatsMonitor::~DtNetStatsMonitor().
|
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().
|
virtual |
Attempt to re-establish a broken connection to the federation Returns true if successful.
Reimplemented in DtSmConnectionMgr.
References addPendingMsg(), connectionId(), createRelConn(), destroyRelConn(), DtRIDParameters::DtFomTransportTypeUseBestEffort, DtNET_READ_NO_PACKETS, DtReconnectMsg::DtReconnectAccepted, DtReconnectMsg::DtReconnectDenied, DtReconnectMsgKind, DtReconnectMsg::DtReconnectRequest, DtRIDParameters::DtSynchronousMode, federateReconnectPause, fedExHandle(), DtRtiConnection::flush(), DtRtiMsg::msgKind(), myClock, myConnectionId, myFederateHandle, myFedExHandle, myFedExName, myIsFederate, myParams, myPrimaryReliableConn, DtRtiConnection::netRead(), params(), DtRIDParameters::processingModel(), processMsg(), processReadResult(), reliableConn(), DtRIDParameters::responseInterval, rtiExecReconnectPause, send(), DtRtiConnection::setFederateHandle(), DtRtiMsg::setFedEx(), DtRtiConnection::setFedExHandle(), DtRtiConnection::setFedExName(), DtRtiMsg::setTransportType(), and useRtiExec.
Referenced by checkRelConn().
|
virtual |
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().
|
virtual |
Set/Get the time managed retract list.
References myRetractList.
|
virtual |
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().
|
virtual |
Return bool: Is save or restore in progress.
References myRestoreInProgress, and mySaveInProgress.
|
virtual |
Sending.
Send a message Returns the size of the data sent
Reimplemented in DtAsyncConnectionMgr, and DtSmConnectionMgr.
References DtTestManager::addSendTimeStampMetaDataIfNecessary(), bestEffortConn(), checkRelConn(), destroyRelConn(), DtMetadataTypeMcastAddr, DtMetadataTypeTransport, DtRtiMsg::fedExHandle(), isMetadataEnabled(), DtFederateMgr::isTicking(), logicalTimeFactory(), myClock, myFedMgr, myIsFederate, myProcessingMessage, myReceivedMsgCount, mySentMsgCount, params(), DtRtiMsg::print(), processingTick(), reliableConn(), DtRtiConnection::send(), serviceCallCount(), DtRtiMtdTransportType::set(), DtRtiMtdMcastAddr::set(), DtRtiMsg::setSequenceNumber(), DtRtiMsg::setServiceCallNumber(), DtRtiMsg::setTransportType(), DtRtiMsg::setTriggerMessageNumber(), DtFederateMgr::testMgr(), and DtFederateMgr::tickCount().
Referenced by createRelConn(), DtForwarderFaultManager::disconnectFederates(), DtMessageThrottle::flush(), DtForwarderFaultManager::pingForwarder(), DtFedExec::processOwnership(), DtMessageThrottle::processQueuedMessages(), DtFedExec::processRestoreBegun(), DtFedExec::processRestoreRequest(), repairFederationConnection(), DtForwarderFaultManager::resignForwarder(), DtFedExec::restoreFederateConnection(), sendAndDelete(), sendShutdownForwarderMsg(), sendStampedUtilityFunction(), and DtRtiExec::tick().
|
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(), DtFedExec::processJoin(), 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().
|
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().
|
virtual |
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().
|
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().
|
virtual |
Send and delete a message stamped with fedEx name and federate ID Retraction record of timestamped messages made here.
References sendStampedUtilityFunction().
Referenced by dropMulticastGroup(), forceDropMulticastGroup(), listenToMulticastGroup(), DtFileDistributor::pushFedFile(), DtObjectMgr::releaseAllAttributes(), DtFederateMgr::sendAlive(), DtObjectMgr::sendDiscoverMsg(), DtInteractionMgr::sendInteractionMsg(), DtRtiExecFederateMgr::sendJoinConfirmMsg(), DtPartnerMgr::sendJoinMessage(), DtObjectMgr::sendLocalDeleteMsg(), DtPartnerMgr::sendPartnerMessage(), DtObjectMgr::sendPendingDiscoveries(), DtInteractionMgr::sendPublishMsg(), DtObjectMgr::sendPublishMsg(), DtObjectMgr::sendRegisterMsg(), DtObjectMgr::sendRemoveDiscoverMsg(), DtObjectMgr::sendRequestDiscoverMsg(), DtFederateMgr::sendResignMsg(), DtRtiExecFederateMgr::sendRestoreBegunMsg(), DtRtiExecFederateMgr::sendRestoreCompleteMsg(), DtRtiExecFederateMgr::sendRestoreRequestMsg(), DtRtiExecFederateMgr::sendSaveBegunMsg(), DtRtiExecFederateMgr::sendSaveCompleteMsg(), DtRtiExecFederateMgr::sendSaveRequestMsg(), DtInteractionMgr::sendSubscribeMsg(), DtObjectMgr::sendSubscribeMsg(), DtRtiExecFederateMgr::sendSyncPointMsg(), DtInteractionMgr::sendUnpublishMsg(), DtObjectMgr::sendUnpublishMsg(), DtInteractionMgr::sendUnsubscribeMsg(), DtObjectMgr::sendUnsubscribeMsg(), and DtObjectMgr::sendUpdateMessage().
|
virtual |
Send a message stamped with fedEx name, but not federate ID Does not make retraction record of sent messages.
References sendStampedUtilityFunction().
|
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().
|
protectedvirtual |
Called by sendStamped, sendStampedAndDelete, sendAnonymousStamped, etc.
Performs actual send, stamping, deletion.
References DtRetractInfoList::add(), DtRtiMsg::fedExHandle(), fedExHandle(), DtRtiMsg::fedExName(), fedExName(), fedHandle(), myMessageThrottle, myRetractList, DtRtiMsg::orderType(), DtMessageThrottle::queueMessage(), send(), sendAndDelete(), DtRtiMsg::setFederateHandle(), and DtRtiMsg::setFedEx().
Referenced by sendStamped(), sendStampedAndDelete(), sendStampedAnonymous(), and sendStampedAnonymousAndDelete().
|
virtual |
Get the next sequence number.
References mySentMsgCount.
|
virtual |
|
virtual |
Called by RTI Ambassador services query if mutex was set using lockServiceCall()
References myLockService.
Referenced by DtAsyncConnectionMgr::wait(), DtSmConnectionMgr::wait(), and wait().
|
static |
Register a creator function.
When set, it will be used to create the Connection Manager.
References DtBindCreator(), and theCreator.
|
virtual |
Set/Get the evoke callbacks state.
References myEvokingCallbacks.
Referenced by DtAsyncConnectionMgr::processPendingMsgMakeCallbacks(), and setProcessingTick().
|
virtual |
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().
|
virtual |
Set the federate manager.
Reimplemented in DtAsyncConnectionMgr.
References myFedMgr.
Referenced by DtFederateMgr::DtFederateMgr(), and DtFederateMgr::~DtFederateMgr().
|
static |
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().
|
virtual |
Set/Get metadata control indicators.
References DtMetadataTypeMcastAddr, DtMetadataTypeTransport, myAddMcastMetadata, and myAddTransportTypeMetadata.
Referenced by DtRtiShmQNetMgr::init(), and DtSmConnectionMgr::initQMgr().
|
virtual |
Get/Set the message factory.
Reimplemented in DtSmConnectionMgr.
References bestEffortConn(), myMsgFactory, reliableConn(), and DtRtiConnection::setMsgFactory().
Referenced by DtConnectionMgr().
|
virtual |
References myMsgQueue.
|
virtual |
Set/Get tick processing state.
References myProcessingTick, processingTick(), and setEvokingCallbacks().
|
virtual |
References myRestoreInProgress.
Referenced by DtRtiExecFederateMgr::processRestore(), and DtRtiExecFederateMgr::processRestoreEnd().
|
virtual |
References myRetractList.
|
virtual |
References mySaveInProgress.
Referenced by DtRtiExecFederateMgr::federateSaveNotComplete(), DtRtiExecFederateMgr::initiateSave(), and DtRtiExecFederateMgr::processSaveFinished().
|
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().
|
virtual |
Request shutdown of communication activities.
Reimplemented in DtAsyncConnectionMgr.
References myShutdown, and myShuttingDown.
Referenced by DtRtiAmbassadorBaseImplementor::shutdown().
|
virtual |
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().
|
virtual |
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().
|
virtual |
Receiving.
Process the connections. Return boolean: a message was processed?
Reimplemented in DtAsyncConnectionMgr.
References flush(), processConnections(), and processPendingMsg().
Referenced by DtRtiExecFederateMgr::destroyFederationExecution(), DtRtiExecFederateMgr::initRidTester(), DtSynchronousFileDistributor::pullEntireFedFile(), DtFileDistributor::pushFedFile(), DtRtiExecFederateMgr::requestImmediateSave(), DtRtiExec::rtiExecToForwarderHandshake(), DtSynchronousFileDistributor::sendFedFile(), DtFederateMgr::tick(), DtRtiExec::tick(), DtRtiExecFederateMgr::waitForCreateResponse(), and DtRtiExecFederateMgr::waitForJoinResponse().
|
virtual |
Called by asychronous processing thread to release mutually exclusive access to RTI managers.
References myCallbackMutex, and myLockService.
Referenced by DtAsyncConnectionMgr::handleMsg(), DtAsyncConnectionMgr::processMsgQueueCallbacks(), DtAsyncConnectionMgr::processPendingMsgMakeCallbacks(), DtAsyncConnectionMgr::processPendingMsgQueueCallbacks(), DtAsyncConnectionMgr::wait(), DtSmConnectionMgr::wait(), wait(), and DtAsyncConnectionMgr::workerThread().
|
virtual |
Update Buffer sizes from Rid params object.
References myPrimaryReliableConn, params(), DtMsgSocket::setRecvBufferSize(), DtMsgSocket::setSendBufferSize(), DtRtiConnection::socket(), socketReceiveBufferSize, and socketSendBufferSize.
|
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().
|
virtual |
Yield processing to allow more data to arrive.
Reimplemented in DtAsyncConnectionMgr.
Referenced by DtRtiExecFederateMgr::destroyFederationExecution(), DtRtiExecFederateMgr::initRidTester(), DtRtiExecFederateMgr::requestImmediateSave(), DtRtiExec::rtiExecToForwarderHandshake(), DtRtiAmbassadorBaseImplementor::shutdown(), DtRtiExecFederateMgr::waitForCreateResponse(), and DtRtiExecFederateMgr::waitForJoinResponse().
|
protected |
Referenced by initParams(), isMetadataEnabled(), and setMetadataControl().
|
protected |
Metadata control indicators.
Referenced by initParams(), isMetadataEnabled(), and setMetadataControl().
|
protected |
Extend auto provide delay to all attribute update requests.
Referenced by allProvideUpdateRequestsDelayed(), and initParams().
|
protected |
The assistant client.
Referenced by createRelConn(), and initConnections().
|
protected |
The best effort connection.
Referenced by bestEffortConn(), DtSmConnectionMgr::connectFederation(), createBestEffortConn(), destroyBestEffortConn(), disconnectFederation(), DtSmConnectionMgr::initConnections(), DtSmConnectionMgr::repairFederationConnection(), and DtSmConnectionMgr::~DtSmConnectionMgr().
|
protected |
Mutex to synchronize access to RTI and Federate Ambassadors.
Referenced by enterServiceCall(), exitServiceCall(), DtAsyncConnectionMgr::init(), lockServiceCall(), DtAsyncConnectionMgr::setFederateMgr(), unlockServiceCall(), and DtAsyncConnectionMgr::~DtAsyncConnectionMgr().
|
protected |
Clock for timing.
Referenced by createAncillaryRelConns(), createRelConn(), destroyRelConn(), drainBacklog(), processMsg(), processReadResult(), repairFederationConnection(), DtAsyncConnectionMgr::send(), send(), and DtAsyncConnectionMgr::sendAndDelete().
|
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().
|
protected |
Default message factory.
Referenced by DtConnectionMgr().
|
protected |
Indicates if callbacks are being evoked.
Referenced by evokingCallbacks(), and setEvokingCallbacks().
|
protected |
Chain of Federate Ambassador Wrappers.
Referenced by addFedAmbWrapper(), addFedAmbWrapperAtFront(), DtSmConnectionMgr::connectFederation(), connectFederation(), DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), removeFedAmbWrapper(), and ~DtConnectionMgr().
|
protected |
Federate handle.
Referenced by DtSmConnectionMgr::connectFederation(), connectFederation(), DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), DtSmConnectionMgr::dropMulticastGroup(), dropMulticastGroup(), fedHandle(), DtSmConnectionMgr::forceDropMulticastGroup(), forceDropMulticastGroup(), DtSmConnectionMgr::listenToMulticastGroup(), listenToMulticastGroup(), DtRtiShmQNetMgr::processMsg(), processMsg(), DtSmConnectionMgr::repairFederationConnection(), repairFederationConnection(), setFederateHandle(), and DtSmConnectionMgr::~DtSmConnectionMgr().
|
protected |
Federation execution handle.
Referenced by DtSmConnectionMgr::connectFederation(), connectFederation(), DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), fedExHandle(), DtSmConnectionMgr::repairFederationConnection(), repairFederationConnection(), and DtSmConnectionMgr::~DtSmConnectionMgr().
|
protected |
Federation execution name.
Referenced by DtSmConnectionMgr::connectFederation(), connectFederation(), DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), fedExName(), DtSmConnectionMgr::repairFederationConnection(), and repairFederationConnection().
|
protected |
The federate manager.
Referenced by fedMgr(), getMessage(), DtAsyncConnectionMgr::handleMsg(), DtNetStatsAsyncConnMgr::processConnection(), processConnection(), processMsg(), DtAsyncConnectionMgr::processMsgQueueCallbacks(), DtAsyncConnectionMgr::processPendingMsgMakeCallbacks(), DtAsyncConnectionMgr::processPendingMsgQueueCallbacks(), DtAsyncConnectionMgr::queueMsg(), DtAsyncConnectionMgr::receivePacket(), DtAsyncConnectionMgr::receivePackets(), DtAsyncConnectionMgr::send(), send(), DtAsyncConnectionMgr::sendAndDelete(), DtAsyncConnectionMgr::sendPackets(), DtAsyncConnectionMgr::setFederateMgr(), setFederateMgr(), and DtAsyncConnectionMgr::workerThread().
|
protected |
RTI is processing a service call.
Referenced by enterServiceCall(), exitServiceCall(), and inServiceCall().
|
protected |
Transport type used for internal messages.
Referenced by DtSmConnectionMgr::connectFederation(), DtSmConnectionMgr::disconnectFederation(), DtSmConnectionMgr::dropMulticastGroup(), dropMulticastGroup(), DtSmConnectionMgr::forceDropMulticastGroup(), forceDropMulticastGroup(), DtSmConnectionMgr::initConnections(), initConnections(), internalTransportType(), DtSmConnectionMgr::listenToMulticastGroup(), listenToMulticastGroup(), DtSmConnectionMgr::processConnections(), and DtSmConnectionMgr::repairFederationConnection().
|
protected |
Whether this manager is for a federate.
Referenced by initConnections(), processConnections(), repairFederationConnection(), send(), and sendShutdownForwarderMsg().
|
protected |
RTI is processing a message.
Referenced by lockServiceCall(), serviceCallLocked(), and unlockServiceCall().
|
protected |
Factories for creating logical time instances.
Referenced by addLogicalTimeFactory(), logicalTimeFactory(), and removeLogicalTimeFactory().
|
protected |
Message output throttle.
Referenced by activateAutoProvideDelay(), activateTransmitDelay(), DtSmConnectionMgr::connectFederation(), connectFederation(), delayAutoProvide(), delayTransmit(), DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), flushQueuedMessages(), initParams(), processQueuedMessages(), sendStampedUtilityFunction(), testAutoProvideDelay(), testTransmitDelay(), and ~DtConnectionMgr().
|
protected |
MOM message callback manager.
Referenced by addMsgCallback(), addWildcardMsgCallback(), momProcessMsg(), removeMsgCallback(), and removeWildcardMsgCallback().
|
protected |
Message callback manager.
Referenced by addMsgCallback(), addWildcardMsgCallback(), DtRtiShmQNetMgr::processMsg(), processMsg(), removeMsgCallback(), and removeWildcardMsgCallback().
|
protected |
The message factory.
Referenced by msgFactory(), DtSmConnectionMgr::setMsgFactory(), and setMsgFactory().
|
protected |
Message queue.
Referenced by DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), handleMsg(), msgQueue(), processPendingMsg(), sendLoopback(), and setMsgQueue().
|
protected |
LRC listening to these multicast groups.
Referenced by createBestEffortConn(), disconnectFederation(), DtSmConnectionMgr::dropMulticastGroup(), dropMulticastGroup(), DtSmConnectionMgr::forceDropMulticastGroup(), forceDropMulticastGroup(), DtSmConnectionMgr::listenToMulticastGroup(), listenToMulticastGroup(), and ~DtConnectionMgr().
|
protected |
The RTI initialization parameters.
Referenced by connectFederation(), createAncillaryRelConns(), createBestEffortConn(), dropMulticastGroup(), forceDropMulticastGroup(), DtRtiShmQNetMgr::init(), init(), DtSmConnectionMgr::initConnections(), initConnections(), initParams(), listenToMulticastGroup(), params(), DtRtiShmQNetMgr::performMulticastDiscovery(), and repairFederationConnection().
|
protected |
Referenced by DtConnectionMgr(), partnerMgr(), processMsg(), and ~DtConnectionMgr().
|
protected |
Pending messages.
Referenced by addPendingMsg(), emptyPendingMsgList(), nextPendingMsg(), pendingMsgCount(), and processPendingMsg().
|
protected |
The primary reliable connection.
Referenced by DtSmConnectionMgr::connectFederation(), createRelConn(), destroyAncillaryRelConns(), destroyRelConn(), DtSmConnectionMgr::initConnections(), reliableConn(), DtSmConnectionMgr::repairFederationConnection(), repairFederationConnection(), updateBufferSizes(), and DtSmConnectionMgr::~DtSmConnectionMgr().
|
protected |
Indicates if message is being processed.
Referenced by processMsg(), send(), and DtAsyncConnectionMgr::setMessageTracking().
|
protected |
Tick processing state.
Referenced by processingTick(), and setProcessingTick().
|
protected |
Number of received messages.
Referenced by DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), DtRtiShmQNetMgr::processMsg(), processMsg(), send(), and DtAsyncConnectionMgr::setMessageTracking().
|
protected |
|
protected |
Restore status.
Referenced by DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), restoreInProgress(), saveRestoreInProgress(), and setRestoreInProgress().
|
protected |
Message retractions.
Referenced by DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), retractList(), sendStampedUtilityFunction(), and setRetractList().
|
protected |
Save status.
Referenced by DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), saveInProgress(), saveRestoreInProgress(), and setSaveInProgress().
|
protected |
Number of sent messages.
Referenced by disconnectFederation(), incrementSequenceNumber(), DtAsyncConnectionMgr::send(), send(), DtAsyncConnectionMgr::sendAndDelete(), sequenceNumber(), and DtAsyncConnectionMgr::setMessageTracking().
|
protected |
Service call counter - increment before processing each service call.
Referenced by incrementServiceCallCount(), serviceCallCount(), and DtAsyncConnectionMgr::setMessageTracking().
|
protected |
|
protected |
Shutdown acknowledged.
Referenced by DtAsyncConnectionMgr::handleMsg(), isShuttingDown(), shutdown(), and DtAsyncConnectionMgr::workerThread().
|
protected |
The count of message size mismatches.
Referenced by processReadResult().
|
protected |
Referenced by processReadResult().
|
protected |
The count of message version conflicts.
Referenced by processReadResult().
|
protected |
Referenced by processReadResult().
|
protected |
Diagnostic message ID stack.
Referenced by DtSmConnectionMgr::disconnectFederation(), disconnectFederation(), DtRtiShmQNetMgr::processMsg(), and processMsg().
|
staticprotected |
The plugin creator.
Referenced by DtRtiShmQNetMgr::create(), create(), and setCreatorFunction().
|
staticprotected |
The internal creator.
Referenced by create(), and setInternalCreatorFunction().