![]() |
MAK RTIspy API Documentation for HLA Evolved
|
The DtConnectionFaultProcessor class is a message processor responsible for responding to lost connections by initiating and participating in the RTI Exec's fault resolution algorithm. More...
Collaboration diagram for DtConnectionFaultProcessor:Public Types | |
| typedef bool(DtConnectionFaultProcessor::* | HandshakeMsgHandlerMemberCb )(MAKRti::DtInetAddr src, const DtConnectionFaultMsg &msg) |
Public Member Functions | |
| DtConnectionFaultProcessor (DtForwarderNode *parent) | |
| Default Ctor. | |
| virtual | ~DtConnectionFaultProcessor () |
| Default Dtor. | |
| virtual bool | gotForwarderStatusRequest (const MAKRti::DtInetAddr &src, const DtForwarderStatusRequestMsg msg) |
| Got Forwarder Status Request Message. | |
| virtual bool | gotRemoteRtiExecConnect (const MAKRti::DtInetAddr &src, const DtRtiExecConnectMsg &msg) |
| Got Remote rtiexec Connect Message from IN Port. | |
| virtual bool | gotLocalRtiExecConnect (const MAKRti::DtInetAddr &src, const DtRtiExecConnectMsg &msg) |
| Got Local rtiexec Connect Message from LAN Port. | |
| virtual bool | gotRtiExecDisconnect (const MAKRti::DtInetAddr &src, const DtDisconnectMsg &msg) |
| Got Local rtiexec Disconnect Message (local or remote) | |
| virtual bool | processResignForwarderMsgDestinations (const MAKRti::DtInetAddr &src, DtForwarderPort::DtAddressPortList &destinations) |
| Set forwarding destination list based on source (eg. | |
Protected Attributes | |
| DtForwarderNode * | myParent |
The DtConnectionFaultProcessor class is a message processor responsible for responding to lost connections by initiating and participating in the RTI Exec's fault resolution algorithm.
When rtiexec receives ConnectionLostMsg( myForwarderID, droppedForwarderID ) rtiexec sends PingForwarderMsg( droppedForwarderID ) Forwarders aggregate all downstream PingForwarderResps and return upstream (=> return NoConnection( droppedForwarderID ) by default If rtiexec receives PingForwarderResp = NoConnection Then Forwarder has been lost no additional action required Else Both myForwarderID and droppedForwarderID are connected rtiexec sends ForwarderStatusRequestMsg( myConnectionID ) rtiexec sends ForwarderStatusRequestMsg( droppedConnectionID ) rtiexec waits for ForwarderStatusMsg (contains downstream federate count) Compare ForwarderStatusMsg( myConnectionID ).numFederates to ForwarderStatusMsg( droppedConnectionID ).numFederates rtiexec Sends ResignForwarder( ID ) where ID = either forwarder with fewer attached federates or (if equal) forwarder with lower ID (arbitrary) Required Processors (basically implement the algorithms required for fault recovery): 1) CountDownstreamFederates Processor
2) PingResponse Processor
3) ConnectionLossDetection Processor
4) ResignForwarder Processor
| typedef bool(DtConnectionFaultProcessor::* DtConnectionFaultProcessor::HandshakeMsgHandlerMemberCb)(MAKRti::DtInetAddr src, const DtConnectionFaultMsg &msg) |
Default Ctor.
| virtual DtConnectionFaultProcessor::~DtConnectionFaultProcessor | ( | ) | [virtual] |
Default Dtor.
| virtual bool DtConnectionFaultProcessor::gotForwarderStatusRequest | ( | const MAKRti::DtInetAddr & | src, |
| const DtForwarderStatusRequestMsg | msg | ||
| ) | [virtual] |
Got Forwarder Status Request Message.
| virtual bool DtConnectionFaultProcessor::gotLocalRtiExecConnect | ( | const MAKRti::DtInetAddr & | src, |
| const DtRtiExecConnectMsg & | msg | ||
| ) | [virtual] |
Got Local rtiexec Connect Message from LAN Port.
| virtual bool DtConnectionFaultProcessor::gotRemoteRtiExecConnect | ( | const MAKRti::DtInetAddr & | src, |
| const DtRtiExecConnectMsg & | msg | ||
| ) | [virtual] |
Got Remote rtiexec Connect Message from IN Port.
| virtual bool DtConnectionFaultProcessor::gotRtiExecDisconnect | ( | const MAKRti::DtInetAddr & | src, |
| const DtDisconnectMsg & | msg | ||
| ) | [virtual] |
Got Local rtiexec Disconnect Message (local or remote)
| virtual bool DtConnectionFaultProcessor::processResignForwarderMsgDestinations | ( | const MAKRti::DtInetAddr & | src, |
| DtForwarderPort::DtAddressPortList & | destinations | ||
| ) | [virtual] |
Set forwarding destination list based on source (eg.
which inlet the message was received on) and forwarder network configuration
DtForwarderNode* DtConnectionFaultProcessor::myParent [protected] |