![]() |
MAK RTIspy API Documentation for HLA 1.3
|
DtRtiAssistantPeer manages the sharing of information between one Assistant to other Assistants using the same multicast address. More...
Collaboration diagram for DtRtiAssistantPeer:Classes | |
| struct | DtPeerMsgStats |
Public Member Functions | |
| DtRtiAssistantPeer (int id, int port=DtASSISTANT_DEFAULT_PORT, const MAKRti::DtInetAddr &ipv4Addr=DtASSISTANT_DEFAULT_IPV4_ADDR, const MAKRti::DtInetAddr &ipv6Addr=DtASSISTANT_DEFAULT_IPV6_ADDR, int ttl=DtASSISTANT_DEFAULT_TTL) | |
| Constructor. | |
| virtual | ~DtRtiAssistantPeer () |
| Destructor. | |
| virtual bool | tick (double timeout=0) |
| Do the actual message processing. | |
| virtual void | setMsgFactory (DtAssistantMessageFactory *fact) |
| Set the message factory. | |
| virtual DtAssistantMessageFactory * | msgFactory () const |
| Get the message factory. | |
| virtual void | sendQueryMsg () |
| Sends a query message to the other Assistants for their information. | |
| virtual void | sendInfoMsg (const DtRtiConnectionAndConfiguration &connsAndConfigs, unsigned memoryPeriod, bool acceptRemoteCommands, bool removal) |
| Sends the information from this Assistant to the other Assistants. | |
| virtual void | sendLightweightInfoMsg (const DtRtiConnectionAndConfiguration &connsAndConfigs, unsigned memoryPeriod) |
| Sends the local lightweight connection information from this Assistant to the other Assistants. | |
| virtual void | sendLicServerInfoMsg (const DtLicServerSet &licServers, bool removal) |
| Sends the information from this Assistant to the other Assistants. | |
| virtual void | sendStartRtiexecMsg (const DtRtiConnectionInfoDataPair &conn, const DtRtiConnectionConfigurationInfo &config) |
| Sends a message to another Assistant to start an rtiexec with the given connection parameters. | |
| virtual void | sendObserveFederationsMsg (const DtRtiConnectionInfo &conn, bool observe, const DtAssistantInfo &assistant=DtAssistantInfo(), int compId=-1) |
| Sends a message to another Assistant to either begin or stop observing the federations of the given connection. | |
| virtual void | sendObserveRtiExecLogMsg (const DtAssistantInfo &assistant, int compId, bool observe) |
| Sends a message to another Assistant to either begin or stop observing the given rtiExec printer connection. | |
| virtual void | sendObserveRtiexecRspMsg (DtNotifyLevelType notifyLevel, int compId, const DtAssistantInfo &destination) |
| Sends an observe response message to a remote Assistant observing a local rtiexec. | |
| virtual void | sendObserveRtiForwarderMsg (const DtRtiConnectionInfo &conn, bool observe, const DtAssistantInfo &assistant, int compId) |
| Sends a message to another Assistant to either begin or stop observing the RTI Forwarder on the given connection. | |
| virtual void | sendFederationStateMsg (const DtRtiConnectionInfoDataPair &conn, const DtAssistantFederationInfo &federation, bool isRemoval) |
| Sends a message to the other Assistants with the state of the given federation. | |
| virtual void | sendNoFederationMsg (const DtRtiConnectionInfoDataPair &conn) |
| Sends a message to the other Assistants informing them that a local rtiexec has no federations. | |
| virtual void | sendFederateResignMsg (const DtAssistantInfo &assistant, int compId, int federationHdl, int federateHdl) |
| Sends a force federate resign message to a remote Assistant to be forwarded to a remote rtiexec. | |
| virtual void | sendFederationDestroyMsg (const DtAssistantInfo &assistant, int compId, int federationHdl) |
| Sends a force federation destroy message to a remote Assistant to be forwarded to a remote rtiexec. | |
| virtual void | sendRidParamsRequestMsg (const DtAssistantInfo &assistant, int compId) |
| Sends a message to a remote Assistant to get the RID parameters of one of its rtiexecs. | |
| virtual void | sendLogRequestMsg (const DtAssistantInfo &assistant, int compId, unsigned maxLogSize) |
| Sends a message to a remote Assistant to get the log, or at least the most recent entries up to a size of maxLogSize bytes, of one of its rtiexecs. | |
| virtual bool | sendLatencyTestRequestMsg (const DtAssistantInfo &assistant, int compId, int federationHdl, int federateHdl, bool runTest, bool continuous, bool shouldHalt, bool observing, unsigned int interactionPeriod, unsigned int numInteractions, unsigned int payloadBytes) |
| Sends a latency test request message to a remote Assistant to be forwarded to a remote rtiexec. | |
| virtual void | sendNetworkTestEnableMsg (const DtAssistantInfo &assistant, int compId, int federationHdl, bool enable) |
| Sends a message enabling or disabling network testing for the given federation. | |
| virtual void | sendRtiexecExitMsg (const DtAssistantInfo &assistant, int compId) |
| Sends a message to a remote Assistant asking it to shutdown one of its local rtiexecs. | |
| virtual void | sendNotifyObserveMsg (bool isObserving) |
| Sends a message to other assistants letting them know that we are observing notification messages. | |
| virtual void | sendNotifyMsg (const MAKRti::DtString &text, DtNotifyLevelType notifyLevel, const MAKRti::DtString &sourceName) |
| Sends a notification message to other assistants. | |
| virtual void | sendRemovalMsg () |
| Sends a removal message to the other Assistants to inform them that this Assistant should be removed from their lists of known Assistants. | |
| virtual void | sendFederateInfoReqMsg (const DtAssistantInfo &astnt, const DtRtiConnectionInfo &conn, const MAKRti::DtString &federation=MAKRti::DtString::nullString(), unsigned federateHandle=0) |
| Sends a message to the other Assistants which queries for federate info. | |
| virtual void | sendFederateInfoRespMsg (const DtRtiConnectionInfo &conn, std::vector< const DtAssistantFederateInfo * > federates) |
| Sends a message to the other Assistants in response to a federate info request with information on one or more matching federates. | |
| virtual void | sendNetStatsObservationRequestMsg (const DtAssistantInfo &astnt, DtAssistantObservationType observationType, int compId, bool observe=false, unsigned int interval=0) |
| Sends a Observation Request to an assistant. | |
| virtual void | sendNetStatsObservationResponseMsg (const DtAssistantInfo &astnt, DtAssistantObservationType observationType, int compId, bool observe) |
| virtual void | sendNetStatsStringUpdateReqMsg (const DtAssistantInfo &assistant, int compId, DtAssistantHandleType handletype, const std::set< DtU32 > &handles) |
| virtual void | sendNetStatsStringUpdate (const DtAssistantInfo &assistant, int compId, DtAssistantHandleType handletype, const std::vector< DtU32 > &objectInstanceHandles, const std::vector< MAKRti::DtString > &objectInstanceNames) |
| virtual void | forwardNetStatsUpdate (const DtAssistantMsg &msg, const std::set< DtAssistantInfo > &observers) |
| virtual void | sendFedDisconnectNetStatsObsRespMsg (DtAssistantObservationType observationType, int compId, const std::set< DtAssistantInfo > &observers) |
| virtual void | sendNetStatsInitStateRequestMsg (const DtAssistantInfo &astnt, DtAssistantObservationType observationType, int compId) |
| virtual void | sendFomTreeData (const DtAssistantInfo &astnt, int compId, const std::vector< MAKRti::DtU32 > &objectClassHandles, const std::vector< MAKRti::DtU32 > &parentObjectClassHandles, const std::vector< MAKRti::DtString > &objectClassNames, const std::vector< MAKRti::DtU32 > &interactionClassHandles, const std::vector< MAKRti::DtU32 > &parentInteractionClassHandles, const std::vector< MAKRti::DtString > &interactionClassNames) |
| virtual void | sendNetStatsAttrStringUpdate (const DtAssistantInfo &astnt, int compId, const std::vector< MAKRti::DtU32 > &objectClassHandles, const std::vector< MAKRti::DtU32 > &attributeHandles, const std::vector< MAKRti::DtString > &attributeNames, const std::vector< MAKRti::DtU32 > &parentClassHandles, const std::vector< MAKRti::DtU32 > &totalObjHandles) |
| virtual void | sendNetStatsParamStringUpdate (const DtAssistantInfo &astnt, int compId, const std::vector< MAKRti::DtU32 > &interClassHandles, const std::vector< MAKRti::DtU32 > ¶meterHandles, const std::vector< MAKRti::DtString > ¶meterNames, const std::vector< MAKRti::DtU32 > &parentInterHandles, const std::vector< MAKRti::DtU32 > &totalInterHandles) |
| virtual void | sendNetStatsAttrParamStringUpdate (const DtAssistantInfo &astnt, int compId, const std::vector< MAKRti::DtU32 > &objectClassHandles, const std::vector< MAKRti::DtU32 > &attributeHandles, const std::vector< MAKRti::DtString > &attributeNames, const std::vector< MAKRti::DtU32 > &parentClassHandles, const std::vector< MAKRti::DtU32 > &totalObjHandles, DtAssistantHandleType objInterType, DtAssistantHandleType attrParamType, DtAssistantHandleType parentClassType) |
| virtual void | sendNetStatsFomAttrParamUpdate (const DtAssistantInfo &astnt, int compId, DtAssistantHandleType handleType, bool isInit, const std::vector< MAKRti::DtU32 > &objectClassHandles, const std::vector< MAKRti::DtU32 > &attributeHandles, const std::vector< bool > &attributePub, const std::vector< bool > &attributeSub, const std::vector< DtTransportType > &attributeTransport, const std::vector< DtOrderType > &attributeOrder, const std::vector< bool > &objectPub, const std::vector< bool > &objectSub, const std::vector< MAKRti::DtU32 > &objPubSubHandles) |
| virtual void | forwardMsg (const DtAssistantMsg &msg, int astntCompId, const DtAssistantInfo &dest=DtAssistantInfo()) |
| Forwards the given message to the other Assistants over the given interface. | |
| virtual int | port () const |
| Returns the Assistant peer port. | |
| virtual MAKRti::DtInetAddr | ipv4Address () const |
| Returns the Assistant IPv4 peer address. | |
| virtual MAKRti::DtInetAddr | ipv6Address () const |
| Returns the Assistant IPv6 peer address. | |
| virtual int | id () const |
| Returns the Assistant peer ID. | |
| virtual const MAKRti::DtInetAddr & | currentNetworkInterfaceAddr () const |
| Returns the network interface address of the current socket being processed. | |
| virtual void | getMsgStats (unsigned &totalRecv, double &recvPerSecOverall, double &recvPerSecCurr, unsigned &totalProc, double &procPerSecOverall, double &procPerSecCurr, unsigned &totalSent, double &sentPerSecOverall, double &sentPerSecCurr) |
| Get message statistics. | |
| virtual DtU32 | maxMsgSize () const |
| Gets the maximum message size. | |
| void | sendMsgToAssistant (const DtAssistantInfo &ifAddr, DtAssistantMsg &msg) |
| Sends the message to the specified Assistant. | |
Callback addition and removal methods | |
| virtual void | addMsgCallback (DtAssistantMsgKind msgKind, DtAssistantMsgCbMgr::DtCallbackFcn fcn, void *usr) |
| Adds/removes callback for a particular message kind. | |
| virtual void | removeMsgCallback (DtAssistantMsgKind msgKind, DtAssistantMsgCbMgr::DtCallbackFcn fcn, void *usr) |
| Adds/removes callback for a particular message kind. | |
| virtual void | addInterfaceFoundCallback (DtInterfaceFoundCb cb, void *usr) |
| Adds a callback for notification for the discovery of a new network interface on the local machine. | |
| virtual void | removeInterfaceFoundCallback (DtInterfaceFoundCb cb, void *usr) |
| Adds/removes callback for a particular message kind. | |
Public Attributes | |
| DtCbInfoStruct(DtInterfaceFoundCb) protected MAKRti::DtInetAddr | myIpv4Addr |
| The IPv4 multicast or broadcast address used by the assistant peer. | |
| MAKRti::DtInetAddr | myIpv6Addr |
| The IPv6 multicast address used by the assistant peer. | |
| int | myTtl |
| The TTL (Time To Live) for Assistant communication. | |
| int | myId |
| A unique ID assigned to this assistant peer. | |
| std::map< MAKRti::DtInetAddr, DtUdpMsgSocket * > | mySockets |
| A map of network interface addresses to the sockets used on those interfaces to communicate with other Assistants. | |
| std::map< MAKRti::DtInetAddr, DtUdpMsgSocket * >::iterator | mySocketIter |
| Iterator of the current socket being processed or the next one that will be processed. | |
| MAKRti::DtInetAddr | myCurrNetworkInterfaceAddr |
| The address of the current network interface being read from. | |
| DtAssistantMsgCbMgr | myMsgCbMgr |
| Message callback manager. | |
| DtAssistantMessageFactory * | myMessageFactory |
| The message factory. | |
| DtAssistantDfltMsgFactory | myDefaultMessageFactory |
| Default message factory. | |
| DtClock | myClock |
| Clock for timeouts and periodic update messages. | |
| DtTime | myNextCheckInterfacesTime |
| Time to recheck the interfaces that are available. | |
| DtTime | myCheckInterfacesInterval |
| Interval at which periodic interface checking should be performed. | |
| DtTime | myBeginProcessingTime |
| The time when this assistant began processing messages. | |
| DtTime | myNextStatsTime |
| The next time to compute message statistics. | |
| DtTime | myLastStatsTime |
| The last time message statistics were computed. | |
| DtPeerMsgStats | myReceivedMsgStats |
| Message statistics for messages received from other assistants. | |
| DtPeerMsgStats | myProcessedMsgStats |
| Message statistics for messages processed from other assistants. | |
| DtPeerMsgStats | mySentMsgStats |
| Message statistics for messages sent to other assistants. | |
| std::list< DtInterfaceFoundCbInfo > | myInterfaceFoundCallbacks |
| The list of network interface discovery callbacks. | |
| bool | myUsingIpv4 |
| Indicates whether any IPv4 sockets are currently in use. | |
| bool | myUsingIpv6 |
| Indicates whether any IPv4 sockets are currently in use. | |
Static Public Attributes | |
| static const DtTime | theStatisticsInterval = 60 |
| The interval at which message statistics are calculated. | |
Protected Member Functions | |
| bool | needsProcessing (const DtAssistantMsg &msg) |
| Returns true if the message should be processed by this assistant. | |
| bool | addSocketsForInterfaces () |
| Adds a new socket for each new interface. | |
| bool | readAndProcess (DtTime maxTime) |
| Read and process the messages on the socket for up to the maximum time. | |
| void | calculateMsgStatistics () |
| Calculate message statistics. | |
| void | sendMsgOnInterface (const MAKRti::DtInetAddr &ifAddr, DtAssistantMsg &msg) |
| Sends the message on the specified interface. | |
| void | sendMsg (std::map< MAKRti::DtInetAddr, DtUdpMsgSocket * >::iterator sockIter, DtAssistantMsg &msg) |
| Sends the message to the other Assistants on the given socket. | |
| void | sendMsgToAll (DtAssistantMsg &msg) |
| Sends the message to the other Assistants on all sockets. | |
| std::auto_ptr< DtAssistantMsg > | netRead (DtUdpMsgSocket *sock, int *retCode) const |
| Read a message from the socket. | |
DtRtiAssistantPeer manages the sharing of information between one Assistant to other Assistants using the same multicast address.
| DtRtiAssistantPeer::DtRtiAssistantPeer | ( | int | id, |
| int | port = DtASSISTANT_DEFAULT_PORT, |
||
| const MAKRti::DtInetAddr & | ipv4Addr = DtASSISTANT_DEFAULT_IPV4_ADDR, |
||
| const MAKRti::DtInetAddr & | ipv6Addr = DtASSISTANT_DEFAULT_IPV6_ADDR, |
||
| int | ttl = DtASSISTANT_DEFAULT_TTL |
||
| ) |
Constructor.
References addSocketsForInterfaces(), myCheckInterfacesInterval, myClock, myId, myNextCheckInterfacesTime, mySocketIter, mySockets, and DtAssistantInfo::setThisAssistantId().
|
virtual |
Destructor.
References mySockets.
|
virtual |
Adds a callback for notification for the discovery of a new network interface on the local machine.
References myInterfaceFoundCallbacks.
|
virtual |
Adds/removes callback for a particular message kind.
References myMsgCbMgr.
Referenced by DtAssistantRemovalMsg::addCallback(), DtAssistantQueryMsg::addCallback(), DtAssistantNotifyObserveMsg::addCallback(), DtAssistantForwarderStateMsg::addCallback(), DtAssistantExitMsg::addCallback(), DtAssistantFederateSignalTickIntervalMsg::addCallback(), DtAssistantLicServerInfoMsg::addCallback(), DtAssistantExecStateMsg::addCallback(), DtAssistantLogRequestMsg::addCallback(), DtAssistantExecObserveRspMsg::addCallback(), DtAssistantDeleteFederationMsg::addCallback(), DtAssistantLightweightInfoMsg::addCallback(), DtAssistantDeleteFederateMsg::addCallback(), DtAssistantLogMsg::addCallback(), DtAssistantInfoMsg::addCallback(), DtAssistantNotifyMsg::addCallback(), DtAssistantPopupMsg::addCallback(), DtAssistantSyncPtUpdateMsg::addCallback(), DtAssistantLatencyReportMsg::addCallback(), DtAssistantRidParamsMsg::addCallback(), DtAssistantTestMgrStatusMsg::addCallback(), DtAssistantStartRtiexecMsg::addCallback(), DtAssistantChangeLatencyTestModeMsg::addCallback(), DtAssistantStateObserveMsg::addCallback(), DtAssistantFederationStateMsg::addCallback(), and DtAssistantFederateStateMsg::addCallback().
|
protected |
Adds a new socket for each new interface.
Returns true if any sockets were added.
References DtUdpMsgSocket::isOpen(), DtRtiConnectionInfo::localIpAddresses(), myIpv4Addr, myIpv6Addr, mySockets, myTtl, myUsingIpv4, myUsingIpv6, DtUdpMsgSocket::openSocket(), DtRtiConnectionInfo::setLocalIpAddresses(), and DtUdpMsgSocket::setMcastTtlOption().
Referenced by DtRtiAssistantPeer(), and tick().
|
protected |
Calculate message statistics.
References DtRtiAssistantPeer::DtPeerMsgStats::msgsPerSecLastPeriod, DtRtiAssistantPeer::DtPeerMsgStats::msgsPerSecOverall, myBeginProcessingTime, myClock, myLastStatsTime, myNextStatsTime, myProcessedMsgStats, myReceivedMsgStats, mySentMsgStats, DtRtiAssistantPeer::DtPeerMsgStats::numMsgsCurrPeriod, DtRtiAssistantPeer::DtPeerMsgStats::numMsgsTotal, and theStatisticsInterval.
Referenced by tick().
|
virtual |
Returns the network interface address of the current socket being processed.
References myCurrNetworkInterfaceAddr.
|
virtual |
Forwards the given message to the other Assistants over the given interface.
The local assistant component ID will be included in the message to indicate the original message sender. Optional parameter specifies a specific assistant to send the message to.
References DtAssistantMsg::clone(), and sendMsgToAssistant().
|
virtual |
References DtAssistantMsg::clone(), and sendMsgOnInterface().
|
virtual |
|
virtual |
Returns the Assistant peer ID.
References myId.
|
virtual |
Returns the Assistant IPv4 peer address.
Returns inaddr_any address if IPv4 is not in use.
References myIpv4Addr, and myUsingIpv4.
|
virtual |
Returns the Assistant IPv6 peer address.
Returns in6addr_any address if IPv6 is not in use.
References myIpv6Addr, and myUsingIpv6.
|
virtual |
Gets the maximum message size.
References mySockets.
|
virtual |
Get the message factory.
References myMessageFactory.
Referenced by netRead(), sendFedDisconnectNetStatsObsRespMsg(), sendFederateInfoReqMsg(), sendFederateInfoRespMsg(), sendFederateResignMsg(), sendFederationDestroyMsg(), sendFederationStateMsg(), sendFomTreeData(), sendInfoMsg(), sendLatencyTestRequestMsg(), sendLicServerInfoMsg(), sendLightweightInfoMsg(), sendLogRequestMsg(), sendNetStatsAttrParamStringUpdate(), sendNetStatsFomAttrParamUpdate(), sendNetStatsInitStateRequestMsg(), sendNetStatsObservationRequestMsg(), sendNetStatsObservationResponseMsg(), sendNetStatsStringUpdate(), sendNetStatsStringUpdateReqMsg(), sendNetworkTestEnableMsg(), sendNoFederationMsg(), sendNotifyMsg(), sendNotifyObserveMsg(), sendObserveFederationsMsg(), sendObserveRtiExecLogMsg(), sendObserveRtiexecRspMsg(), sendObserveRtiForwarderMsg(), sendQueryMsg(), sendRemovalMsg(), sendRidParamsRequestMsg(), sendRtiexecExitMsg(), and sendStartRtiexecMsg().
|
protected |
Returns true if the message should be processed by this assistant.
Filters out messages that were either sent by the local assistant or are specifically targeted to another assistant.
References DtAssistantMsg::destAddr(), DtAssistantMsg::destId(), DtASSISTANT_DEFAULT_DEST_ID, myId, mySockets, DtAssistantMsg::sourceAddr(), and DtAssistantMsg::sourceId().
Referenced by readAndProcess().
|
protected |
Read a message from the socket.
References DtASSISTANT_BUFFER_TOO_SMALL, DtASSISTANT_INVALID_VERSION, DtASSISTANT_READ_BAD_PACKET, DtASSISTANT_READ_FILTERED_PACKET, DtASSISTANT_READ_NO_PACKETS, DtASSISTANT_READ_SIZE_MISMATCH, DtASSISTANT_READ_SUCCESS, DtASSISTANT_UNKNOWN_ERROR, DtAssistantMessageVersion, DtUdpMsgSocket::inetUdpSocket(), DtAssistantMsg::isOk(), msgFactory(), DtUdpMsgSocket::recvMessage(), DtAssistantMsg::sourceAddr(), DtNetAssistantMsgHeader::totalSize, DtNetAssistantMsgHeader::version, and DtNetAssistantMsgHeader::versionMatches().
Referenced by readAndProcess().
|
virtual |
Returns the Assistant peer port.
|
protected |
Read and process the messages on the socket for up to the maximum time.
References DtASSISTANT_READ_SUCCESS, DtAssistantMsg::kindToString(), DtAssistantMsg::msgKind(), myClock, myCurrNetworkInterfaceAddr, myMsgCbMgr, myProcessedMsgStats, myReceivedMsgStats, mySocketIter, mySockets, needsProcessing(), netRead(), DtRtiAssistantPeer::DtPeerMsgStats::numMsgsCurrPeriod, DtRtiAssistantPeer::DtPeerMsgStats::numMsgsTotal, and DtAssistantMsg::sourceHost().
Referenced by tick().
|
virtual |
Adds/removes callback for a particular message kind.
References myInterfaceFoundCallbacks.
|
virtual |
Adds/removes callback for a particular message kind.
References myMsgCbMgr.
Referenced by DtAssistantRemovalMsg::removeCallback(), DtAssistantQueryMsg::removeCallback(), DtAssistantNotifyObserveMsg::removeCallback(), DtAssistantForwarderStateMsg::removeCallback(), DtAssistantExitMsg::removeCallback(), DtAssistantFederateSignalTickIntervalMsg::removeCallback(), DtAssistantLicServerInfoMsg::removeCallback(), DtAssistantExecStateMsg::removeCallback(), DtAssistantLogRequestMsg::removeCallback(), DtAssistantExecObserveRspMsg::removeCallback(), DtAssistantDeleteFederationMsg::removeCallback(), DtAssistantLightweightInfoMsg::removeCallback(), DtAssistantLogMsg::removeCallback(), DtAssistantDeleteFederateMsg::removeCallback(), DtAssistantInfoMsg::removeCallback(), DtAssistantNotifyMsg::removeCallback(), DtAssistantPopupMsg::removeCallback(), DtAssistantSyncPtUpdateMsg::removeCallback(), DtAssistantLatencyReportMsg::removeCallback(), DtAssistantRidParamsMsg::removeCallback(), DtAssistantTestMgrStatusMsg::removeCallback(), DtAssistantStartRtiexecMsg::removeCallback(), DtAssistantChangeLatencyTestModeMsg::removeCallback(), DtAssistantStateObserveMsg::removeCallback(), DtAssistantFederationStateMsg::removeCallback(), and DtAssistantFederateStateMsg::removeCallback().
|
virtual |
|
virtual |
Sends a message to the other Assistants which queries for federate info.
Can be as specific as desired. The remote assistant will respond with all federates that match any specified criteria.
References DtAssistantInfo::address(), DtRtiConnectionInfo::bestEffortIp(), DtAssistantFederateReqMsgKind, DtRtiConnectionInfo::forwarderPort(), DtAssistantInfo::id(), DtRtiConnectionInfo::isValid(), msgFactory(), DtRtiConnectionInfo::networkInterfaceAddr(), DtAssistantInfo::networkInterfaceAddress(), DtRtiConnectionInfo::reliableIp(), sendMsgToAssistant(), DtAssistantMsg::setDestAddr(), DtAssistantMsg::setDestId(), DtAssistantInfo::setNetworkInterfaceAddress(), DtRtiConnectionInfo::tcpPort(), DtRtiConnectionInfo::udpPort(), and DtRtiConnectionInfo::useRtiexec().
|
virtual |
Sends a message to the other Assistants in response to a federate info request with information on one or more matching federates.
References DtRtiConnectionInfo::bestEffortIp(), DtAssistantFederateRespMsgKind, DtHlaVersionUnknown, DtRtiConnectionInfo::forwarderPort(), DtRtiConnectionInfo::isValid(), msgFactory(), DtRtiConnectionInfo::networkInterfaceAddr(), DtRtiConnectionInfo::reliableIp(), sendMsgOnInterface(), DtRtiConnectionInfo::tcpPort(), DtRtiConnectionInfo::udpPort(), and DtRtiConnectionInfo::useRtiexec().
|
virtual |
Sends a force federate resign message to a remote Assistant to be forwarded to a remote rtiexec.
References DtAssistantDeleteFederateMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), DtAssistantDeleteFederateMsg::setFederateHandle(), and DtAssistantDeleteFederateMsg::setFederationHandle().
|
virtual |
Sends a force federation destroy message to a remote Assistant to be forwarded to a remote rtiexec.
References DtAssistantDeleteFederationMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), and DtAssistantDeleteFederationMsg::setFederationHandle().
|
virtual |
Sends a message to the other Assistants with the state of the given federation.
References DtAssistantFederationStateMsgKind, DtAssistantFederationInfo::federates(), DtAssistantFederationInfo::federationHandle(), DtAssistantFederationInfo::federationName(), DtAssistantFederationInfo::fomModules(), msgFactory(), sendMsgOnInterface(), DtAssistantMsg::setCompId(), DtAssistantFederationStateMsg::setConnection(), DtAssistantFederationStateMsg::setFederateStates(), DtAssistantFederationStateMsg::setFederationHandle(), DtAssistantFederationStateMsg::setFederationName(), DtAssistantFederationStateMsg::setFedFileName(), DtAssistantFederationStateMsg::setFomModules(), DtAssistantFederationStateMsg::setIsRemoval(), DtAssistantFederationStateMsg::setIsTestEnabled(), DtAssistantFederationStateMsg::setNoFederations(), and DtAssistantFederationInfo::testingEnabled().
|
virtual |
|
virtual |
Sends the information from this Assistant to the other Assistants.
This message includes rtiexecs, forwarders, and assistant settings
References DtRtiConnectionAndConfiguration::connections(), DtAssistantInfoMsgKind, DtRtiConnectionAndConfiguration::findConfigMapping(), msgFactory(), mySockets, sendMsg(), DtAssistantInfoMsg::setAssistantInfoMemoryPeriod(), DtAssistantInfoMsg::setRemoteCmdsAccepted(), DtAssistantInfoMsg::setRemoval(), and DtAssistantInfoMsg::setRtiexecsAndForwarders().
|
virtual |
Sends a latency test request message to a remote Assistant to be forwarded to a remote rtiexec.
References DtAssistantChangeLatencyTestModeMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), DtAssistantChangeLatencyTestModeMsg::setContinuousUpdate(), DtAssistantChangeLatencyTestModeMsg::setFederationHandle(), DtAssistantChangeLatencyTestModeMsg::setInitFedHandle(), DtAssistantChangeLatencyTestModeMsg::setInteractionPeriod(), DtAssistantChangeLatencyTestModeMsg::setNumInteractions(), DtAssistantChangeLatencyTestModeMsg::setObservingResults(), DtAssistantChangeLatencyTestModeMsg::setPayloadBytes(), DtAssistantChangeLatencyTestModeMsg::setRunTest(), and DtAssistantChangeLatencyTestModeMsg::setShouldHaltContinuous().
|
virtual |
Sends the information from this Assistant to the other Assistants.
This message includes rtiexecs, forwarders, and licenses
References DtAssistantLicServerInfoMsgKind, msgFactory(), sendMsgToAll(), DtAssistantLicServerInfoMsg::setLicenseServers(), and DtAssistantLicServerInfoMsg::setRemoval().
|
virtual |
Sends the local lightweight connection information from this Assistant to the other Assistants.
References DtRtiConnectionAndConfiguration::addConfiguration(), DtRtiConnectionAndConfiguration::addConnection(), DtRtiConnectionAndConfiguration::connections(), DtAssistantLightweightInfoMsgKind, DtRtiConnectionAndConfiguration::findConfigMapping(), msgFactory(), mySockets, sendMsg(), DtRtiConnectionAndConfiguration::setConnectionConfigMapping(), DtAssistantLightweightInfoMsg::setLightweightConns(), and DtAssistantLightweightInfoMsg::setLightweightMemoryPeriod().
|
virtual |
Sends a message to a remote Assistant to get the log, or at least the most recent entries up to a size of maxLogSize bytes, of one of its rtiexecs.
References DtAssistantLogRequestMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), and DtAssistantLogRequestMsg::setMaxLogSize().
|
protected |
Sends the message to the other Assistants on the given socket.
References DtAssistantMsg::destAddr(), DtGetLocalHostName(), DtUdpMsgSocket::isOpen(), DtAssistantMsg::kindToString(), DtAssistantMsg::msgKind(), myId, mySentMsgStats, DtRtiAssistantPeer::DtPeerMsgStats::numMsgsCurrPeriod, DtRtiAssistantPeer::DtPeerMsgStats::numMsgsTotal, DtUdpMsgSocket::sendMessage(), DtAssistantMsg::setSourceAddr(), DtAssistantMsg::setSourceHost(), DtAssistantMsg::setSourceId(), and DtAssistantMsg::sourceHost().
Referenced by sendInfoMsg(), sendLightweightInfoMsg(), sendMsgOnInterface(), and sendMsgToAll().
|
protected |
Sends the message on the specified interface.
If interface is not found, sends to all interfaces.
References mySockets, sendMsg(), and sendMsgToAll().
Referenced by forwardNetStatsUpdate(), sendFedDisconnectNetStatsObsRespMsg(), sendFederateInfoRespMsg(), sendFederationStateMsg(), sendMsgToAssistant(), sendNoFederationMsg(), sendObserveFederationsMsg(), and sendStartRtiexecMsg().
|
protected |
Sends the message to the other Assistants on all sockets.
References mySockets, and sendMsg().
Referenced by sendLicServerInfoMsg(), sendMsgOnInterface(), sendMsgToAssistant(), sendNotifyMsg(), sendNotifyObserveMsg(), sendQueryMsg(), and sendRemovalMsg().
| void DtRtiAssistantPeer::sendMsgToAssistant | ( | const DtAssistantInfo & | ifAddr, |
| DtAssistantMsg & | msg | ||
| ) |
Sends the message to the specified Assistant.
References DtAssistantInfo::address(), DtAssistantMsg::destId(), DtAssistantInfo::host(), DtAssistantInfo::id(), DtHostNameAddress::isValid(), DtAssistantInfo::networkInterfaceAddress(), sendMsgOnInterface(), sendMsgToAll(), DtAssistantMsg::setDestAddr(), and DtAssistantMsg::setDestId().
Referenced by forwardMsg(), sendFederateInfoReqMsg(), sendFederateResignMsg(), sendFederationDestroyMsg(), sendFomTreeData(), sendLatencyTestRequestMsg(), sendLogRequestMsg(), sendNetStatsAttrParamStringUpdate(), sendNetStatsFomAttrParamUpdate(), sendNetStatsInitStateRequestMsg(), sendNetStatsObservationRequestMsg(), sendNetStatsObservationResponseMsg(), sendNetStatsStringUpdate(), sendNetStatsStringUpdateReqMsg(), sendNetworkTestEnableMsg(), sendObserveRtiExecLogMsg(), sendObserveRtiexecRspMsg(), sendObserveRtiForwarderMsg(), sendRidParamsRequestMsg(), and sendRtiexecExitMsg().
|
virtual |
References DtAssistantNetStatsAttrParamStringUpdateMsgKind, msgFactory(), sendMsgToAssistant(), and DtAssistantMsg::setCompId().
Referenced by sendNetStatsAttrStringUpdate(), and sendNetStatsParamStringUpdate().
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Sends a Observation Request to an assistant.
It will either request that it observe and interval the federate should send, or tell the federate not observing.
References DtAssistantNetStatsObserveReqMsgKind, msgFactory(), sendMsgToAssistant(), and DtAssistantMsg::setCompId().
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Sends a message enabling or disabling network testing for the given federation.
References DtAssistantNetworkTestEnableMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), DtAssistantNetworkTestEnableMsg::setEnableTesting(), and DtAssistantNetworkTestEnableMsg::setFederationHandle().
|
virtual |
Sends a message to the other Assistants informing them that a local rtiexec has no federations.
References DtAssistantFederationStateMsgKind, msgFactory(), sendMsgOnInterface(), DtAssistantMsg::setCompId(), DtAssistantFederationStateMsg::setConnection(), and DtAssistantFederationStateMsg::setNoFederations().
|
virtual |
Sends a notification message to other assistants.
References DtAssistantNotifyMsgKind, msgFactory(), sendMsgToAll(), DtAssistantNotifyMsg::setNotifyLevel(), DtAssistantNotifyMsg::setSourceName(), and DtAssistantNotifyMsg::setText().
|
virtual |
Sends a message to other assistants letting them know that we are observing notification messages.
References DtAssistantNotifyObserveMsgKind, msgFactory(), sendMsgToAll(), and DtAssistantNotifyObserveMsg::setIsObserved().
|
virtual |
Sends a message to another Assistant to either begin or stop observing the federations of the given connection.
Can optionally specify the specific location (Assistant and component ID) of the rtiexec.
References DtAssistantInfo::address(), DtAssistantStateObserveFederationsOrRtiexec, DtAssistantStateObserveMsgKind, DtAssistantInfo::id(), msgFactory(), DtRtiConnectionInfo::networkInterfaceAddr(), sendMsgOnInterface(), DtAssistantMsg::setCompId(), DtAssistantStateObserveMsg::setConnection(), DtAssistantMsg::setDestAddr(), DtAssistantMsg::setDestId(), DtAssistantStateObserveMsg::setIsObserved(), DtAssistantStateObserveMsg::setIsSingleView(), and DtAssistantStateObserveMsg::setTargetType().
|
virtual |
Sends a message to another Assistant to either begin or stop observing the given rtiExec printer connection.
References DtAssistantStateObserveFederationsOrRtiexec, DtAssistantStateObserveMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), DtAssistantStateObserveMsg::setIsLogRequest(), DtAssistantStateObserveMsg::setIsObserved(), DtAssistantStateObserveMsg::setIsSingleView(), DtAssistantStateObserveMsg::setTargetType(), and DtAssistantStateObserveMsg::setTimeStateUpdateInterval().
|
virtual |
Sends an observe response message to a remote Assistant observing a local rtiexec.
References DtAssistantExecObserveRspMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), and DtAssistantExecObserveRspMsg::setNotifyLevel().
|
virtual |
Sends a message to another Assistant to either begin or stop observing the RTI Forwarder on the given connection.
References DtAssistantStateObserveForwarderPersistent, DtAssistantStateObserveMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), DtAssistantStateObserveMsg::setConnection(), DtAssistantStateObserveMsg::setIsObserved(), DtAssistantStateObserveMsg::setIsSingleView(), and DtAssistantStateObserveMsg::setTargetType().
|
virtual |
Sends a query message to the other Assistants for their information.
References DtAssistantQueryMsgKind, msgFactory(), and sendMsgToAll().
|
virtual |
Sends a removal message to the other Assistants to inform them that this Assistant should be removed from their lists of known Assistants.
References DtAssistantRemovalMsgKind, msgFactory(), and sendMsgToAll().
|
virtual |
Sends a message to a remote Assistant to get the RID parameters of one of its rtiexecs.
References DtAssistantRidParamsMsgKind, msgFactory(), sendMsgToAssistant(), DtAssistantMsg::setCompId(), and DtAssistantRidParamsMsg::setIsRequest().
|
virtual |
Sends a message to a remote Assistant asking it to shutdown one of its local rtiexecs.
References DtAssistantExitMsgKind, msgFactory(), sendMsgToAssistant(), and DtAssistantMsg::setCompId().
|
virtual |
Sends a message to another Assistant to start an rtiexec with the given connection parameters.
References DtAssistantStartRtiexecMsgKind, DtRtiConnectionConfigurationInfo::forceFullCompliance(), msgFactory(), DtAssistantStartRtiexecMsg::reliableIpAddress(), sendMsgOnInterface(), DtAssistantStartRtiexecMsg::setBestEffortIpAddress(), DtAssistantStartRtiexecMsg::setConnectionName(), DtAssistantStartRtiexecMsg::setForwarderPort(), DtAssistantStartRtiexecMsg::setForwarderToConnectTo(), DtAssistantStartRtiexecMsg::setFullCompliance(), DtAssistantStartRtiexecMsg::setReliableIpAddress(), DtAssistantStartRtiexecMsg::setTcpPort(), and DtAssistantStartRtiexecMsg::setUdpPort().
|
virtual |
Set the message factory.
References myMessageFactory.
|
virtual |
Do the actual message processing.
References addSocketsForInterfaces(), calculateMsgStatistics(), myBeginProcessingTime, myCheckInterfacesInterval, myClock, myInterfaceFoundCallbacks, myLastStatsTime, myNextCheckInterfacesTime, myNextStatsTime, mySocketIter, mySockets, and readAndProcess().
| DtTime DtRtiAssistantPeer::myBeginProcessingTime |
The time when this assistant began processing messages.
Referenced by calculateMsgStatistics(), and tick().
| DtTime DtRtiAssistantPeer::myCheckInterfacesInterval |
Interval at which periodic interface checking should be performed.
Referenced by DtRtiAssistantPeer(), and tick().
| DtClock DtRtiAssistantPeer::myClock |
Clock for timeouts and periodic update messages.
Referenced by calculateMsgStatistics(), DtRtiAssistantPeer(), readAndProcess(), and tick().
| MAKRti::DtInetAddr DtRtiAssistantPeer::myCurrNetworkInterfaceAddr |
The address of the current network interface being read from.
Will have an invalid value if no messages are currently being processed.
Referenced by currentNetworkInterfaceAddr(), and readAndProcess().
| DtAssistantDfltMsgFactory DtRtiAssistantPeer::myDefaultMessageFactory |
Default message factory.
| int DtRtiAssistantPeer::myId |
A unique ID assigned to this assistant peer.
This ID, along with the IP address of this machine, should uniquely identify this Assistant.
Referenced by DtRtiAssistantPeer(), id(), needsProcessing(), and sendMsg().
| std::list<DtInterfaceFoundCbInfo> DtRtiAssistantPeer::myInterfaceFoundCallbacks |
The list of network interface discovery callbacks.
Referenced by addInterfaceFoundCallback(), removeInterfaceFoundCallback(), and tick().
| DtCbInfoStruct (DtInterfaceFoundCb) protected MAKRti::DtInetAddr DtRtiAssistantPeer::myIpv4Addr |
The IPv4 multicast or broadcast address used by the assistant peer.
Referenced by addSocketsForInterfaces(), and ipv4Address().
| MAKRti::DtInetAddr DtRtiAssistantPeer::myIpv6Addr |
The IPv6 multicast address used by the assistant peer.
Referenced by addSocketsForInterfaces(), and ipv6Address().
| DtTime DtRtiAssistantPeer::myLastStatsTime |
The last time message statistics were computed.
Referenced by calculateMsgStatistics(), and tick().
| DtAssistantMessageFactory* DtRtiAssistantPeer::myMessageFactory |
The message factory.
Referenced by msgFactory(), and setMsgFactory().
| DtAssistantMsgCbMgr DtRtiAssistantPeer::myMsgCbMgr |
Message callback manager.
Referenced by addMsgCallback(), readAndProcess(), and removeMsgCallback().
| DtTime DtRtiAssistantPeer::myNextCheckInterfacesTime |
Time to recheck the interfaces that are available.
Referenced by DtRtiAssistantPeer(), and tick().
| DtTime DtRtiAssistantPeer::myNextStatsTime |
The next time to compute message statistics.
Referenced by calculateMsgStatistics(), and tick().
| DtPeerMsgStats DtRtiAssistantPeer::myProcessedMsgStats |
Message statistics for messages processed from other assistants.
Referenced by calculateMsgStatistics(), getMsgStats(), and readAndProcess().
| DtPeerMsgStats DtRtiAssistantPeer::myReceivedMsgStats |
Message statistics for messages received from other assistants.
Referenced by calculateMsgStatistics(), getMsgStats(), and readAndProcess().
| DtPeerMsgStats DtRtiAssistantPeer::mySentMsgStats |
Message statistics for messages sent to other assistants.
Referenced by calculateMsgStatistics(), getMsgStats(), and sendMsg().
| std::map< MAKRti::DtInetAddr, DtUdpMsgSocket*>::iterator DtRtiAssistantPeer::mySocketIter |
Iterator of the current socket being processed or the next one that will be processed.
Referenced by DtRtiAssistantPeer(), readAndProcess(), and tick().
| std::map< MAKRti::DtInetAddr, DtUdpMsgSocket*> DtRtiAssistantPeer::mySockets |
A map of network interface addresses to the sockets used on those interfaces to communicate with other Assistants.
Referenced by addSocketsForInterfaces(), DtRtiAssistantPeer(), maxMsgSize(), needsProcessing(), readAndProcess(), sendInfoMsg(), sendLightweightInfoMsg(), sendMsgOnInterface(), sendMsgToAll(), tick(), and ~DtRtiAssistantPeer().
| int DtRtiAssistantPeer::myTtl |
The TTL (Time To Live) for Assistant communication.
Referenced by addSocketsForInterfaces().
| bool DtRtiAssistantPeer::myUsingIpv4 |
Indicates whether any IPv4 sockets are currently in use.
Referenced by addSocketsForInterfaces(), and ipv4Address().
| bool DtRtiAssistantPeer::myUsingIpv6 |
Indicates whether any IPv4 sockets are currently in use.
Referenced by addSocketsForInterfaces(), and ipv6Address().
|
static |
The interval at which message statistics are calculated.
Referenced by calculateMsgStatistics().