![]() |
MAK RTIspy API Documentation for HLA Evolved
|
The DtRtiExecHandshakeProcessor class consists of filters for RtiExecHandshake messages for all three ports of a forwarder node. More...
Collaboration diagram for DtRtiExecHandshakeProcessor:Classes | |
| class | PendingRequest |
| Simple helper class to hold status of pending rtiexec Handshakes. More... | |
Public Types | |
| typedef bool(DtRtiExecHandshakeProcessor::* | HandshakeMsgHandlerMemberCb )(const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg) |
| Pointer to member function callbacks used by the port filters. | |
| typedef bool(DtRtiExecHandshakeProcessor::* | DestinationProcessingMemberCb )(const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations) |
Public Member Functions | |
| DtRtiExecHandshakeProcessor (DtBoost::shared_ptr< DtForwarderNode > parent) | |
| Default Ctor. | |
| virtual | ~DtRtiExecHandshakeProcessor () |
| Default Dtor. | |
| virtual bool | gotMsgToLanPort (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg) |
| Got Handshake Message from the IN Port to the LAN Port. | |
| virtual bool | gotMsgToOutPort (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg) |
| Got Handshake Message from the IN or LAN Port to the OUT Port. | |
| virtual bool | gotRtiExecConnect (const DtInetAddrAndPort &src, const DtRtiExecConnectMsg &msg) |
| Got rtiexec Connect Message from the IN or LAN Port. | |
| virtual bool | gotRtiExecDisconnect (const DtInetAddrAndPort &src, const DtRtiExecDisconnectMsg &msg) |
| Got rtiexec Disconnect Message from the IN or LAN Port. | |
| virtual bool | processExecHandshakeDestinations (const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations) |
| Set forwarding destination list based on source (eg. | |
| virtual bool | ignoreExecHandshakeDestinations (const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations) |
| Exec Handshakes messages are simply forwarded to all LAN destinations. | |
| virtual bool | ignoreExecConnectDestinations (const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations) |
| Exec Connect messages are not forwarded by this processor, but they are also handled by the Forwarder Fault Processor which may forward them. | |
| virtual bool | isLocalGroupMember (const DtInetAddrAndPort &addr) |
| Aids to determine inbound and outbound connections to rtiexec. | |
| virtual DtInetAddrAndPort | locateGroupPortal (const DtInetAddrAndPort &addr) |
| virtual DtInetAddrAndPort | localNodeAddress () |
| Return parent node address. | |
Static Public Member Functions | |
| static int | lostConnection (const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr, void *usr) |
| Connection loss callback. | |
Protected Types | |
| typedef std::set< unsigned int > | DtConnIdList |
| typedef std::map< unsigned int, PendingRequest > | DtConnIdToRequestMap |
Protected Member Functions | |
| virtual int | lostConnection (const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr) |
| Connection loss callback. | |
| virtual void | sendResponseMsg (DtRtiExecHandshakeMsg::DtHandshakeStatus status, DtHandle src, DtHandle dest, const MAKRti::DtString &hostName, bool fullyCompliant, const DtInetAddrAndPort *addr=0) |
| Send a handshake Response based on aggregating all Local responses and all downstream WAN responses. | |
| virtual bool | processInToOutMsg (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg) |
| Got Handshake Message from the IN Port to the OUT Port. | |
| virtual bool | processLanToOutMsg (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg) |
| Got Handshake Message from the LAN Port to the OUT Port. | |
Protected Attributes | |
| DtBoost::shared_ptr < DtForwarderNode > | myParent |
| DtRtiExecHandshakeFilter * | myMsgToLanFilter |
| DtRtiExecHandshakeFilter * | myMsgToOutFilter |
| DtRtiExecConnectionFilter < DtRtiExecHandshakeProcessor > * | myRtiExecConnectionFilter |
| DtConnIdList | myLocalRtiExecConnIds |
| List of local rtiexec Candidates. | |
| DtConnIdToRequestMap | myPendingRequests |
| Map of outstanding rtiexec Requests to Responses. | |
| unsigned long | myConnectionIdOfLocalRtiExec |
| If valid, this represents the connID of a local exec. | |
| bool | myHaveConnectionIdOfLocalRtiExec |
The DtRtiExecHandshakeProcessor class consists of filters for RtiExecHandshake messages for all three ports of a forwarder node.
The processor pulls all handshake messages passing through the forwarder node out of the message stream, and determines the appropriate response. The processor then generates the response and sends it to all necessary destinations.
| typedef bool(DtRtiExecHandshakeProcessor::* DtRtiExecHandshakeProcessor::DestinationProcessingMemberCb)(const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations) |
typedef std::set< unsigned int > DtRtiExecHandshakeProcessor::DtConnIdList [protected] |
typedef std::map< unsigned int, PendingRequest > DtRtiExecHandshakeProcessor::DtConnIdToRequestMap [protected] |
| typedef bool(DtRtiExecHandshakeProcessor::* DtRtiExecHandshakeProcessor::HandshakeMsgHandlerMemberCb)(const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg) |
Pointer to member function callbacks used by the port filters.
| DtRtiExecHandshakeProcessor::DtRtiExecHandshakeProcessor | ( | DtBoost::shared_ptr< DtForwarderNode > | parent | ) |
Default Ctor.
References gotMsgToLanPort(), gotMsgToOutPort(), gotRtiExecConnect(), gotRtiExecDisconnect(), ignoreExecConnectDestinations(), ignoreExecHandshakeDestinations(), lostConnection(), myMsgToLanFilter, myMsgToOutFilter, myParent, myRtiExecConnectionFilter, and processExecHandshakeDestinations().
Default Dtor.
References myMsgToLanFilter, myMsgToOutFilter, myParent, and myRtiExecConnectionFilter.
| bool DtRtiExecHandshakeProcessor::gotMsgToLanPort | ( | const DtInetAddrAndPort & | src, |
| const DtRtiExecHandshakeMsg & | msg | ||
| ) | [virtual] |
Got Handshake Message from the IN Port to the LAN Port.
References DtRtiExecHandshakeMsg::destConnectionHandle(), DtRtiExecHandshakeMsg::fullyCompliant(), DtRtiExecHandshakeMsg::handshakeStatus(), DtRtiExecHandshakeMsg::HsRequest, DtRtiExecHandshakeMsg::HsResponseDenied, DtRtiExecHandshakeMsg::HsResponseGranted, myConnectionIdOfLocalRtiExec, myHaveConnectionIdOfLocalRtiExec, myLocalRtiExecConnIds, myPendingRequests, DtRtiMsg::print(), sendResponseMsg(), DtRtiExecHandshakeMsg::sourceHostName(), and DtRtiExecHandshakeMsg::srcConnectionHandle().
Referenced by DtRtiExecHandshakeProcessor().
| bool DtRtiExecHandshakeProcessor::gotMsgToOutPort | ( | const DtInetAddrAndPort & | src, |
| const DtRtiExecHandshakeMsg & | msg | ||
| ) | [virtual] |
Got Handshake Message from the IN or LAN Port to the OUT Port.
References localNodeAddress(), DtRtiMsg::print(), processInToOutMsg(), and processLanToOutMsg().
Referenced by DtRtiExecHandshakeProcessor().
| bool DtRtiExecHandshakeProcessor::gotRtiExecConnect | ( | const DtInetAddrAndPort & | src, |
| const DtRtiExecConnectMsg & | msg | ||
| ) | [virtual] |
Got rtiexec Connect Message from the IN or LAN Port.
References DtRtiExecConnectMsg::connectionHandle(), DtRtiExecConnectMsg::fullyCompliant(), DtRtiExecConnectMsg::hostName(), localNodeAddress(), and myParent.
Referenced by DtRtiExecHandshakeProcessor().
| bool DtRtiExecHandshakeProcessor::gotRtiExecDisconnect | ( | const DtInetAddrAndPort & | src, |
| const DtRtiExecDisconnectMsg & | msg | ||
| ) | [virtual] |
Got rtiexec Disconnect Message from the IN or LAN Port.
References DtConnectMsg::connectionHandle(), localNodeAddress(), myConnectionIdOfLocalRtiExec, myHaveConnectionIdOfLocalRtiExec, myLocalRtiExecConnIds, myParent, and DtRtiMsg::print().
Referenced by DtRtiExecHandshakeProcessor().
| bool DtRtiExecHandshakeProcessor::ignoreExecConnectDestinations | ( | const DtInetAddrAndPort & | src, |
| DtForwarderPort::DtAddressPortList & | destinations | ||
| ) | [virtual] |
Exec Connect messages are not forwarded by this processor, but they are also handled by the Forwarder Fault Processor which may forward them.
Referenced by DtRtiExecHandshakeProcessor().
| bool DtRtiExecHandshakeProcessor::ignoreExecHandshakeDestinations | ( | const DtInetAddrAndPort & | src, |
| DtForwarderPort::DtAddressPortList & | destinations | ||
| ) | [virtual] |
Exec Handshakes messages are simply forwarded to all LAN destinations.
This method is just a dummy for the filter ctor.
Referenced by DtRtiExecHandshakeProcessor().
| bool DtRtiExecHandshakeProcessor::isLocalGroupMember | ( | const DtInetAddrAndPort & | addr | ) | [virtual] |
Aids to determine inbound and outbound connections to rtiexec.
References myParent.
Return parent node address.
References myParent.
Referenced by gotMsgToOutPort(), gotRtiExecConnect(), gotRtiExecDisconnect(), processExecHandshakeDestinations(), processInToOutMsg(), and processLanToOutMsg().
| DtInetAddrAndPort DtRtiExecHandshakeProcessor::locateGroupPortal | ( | const DtInetAddrAndPort & | addr | ) | [virtual] |
References myParent.
| int DtRtiExecHandshakeProcessor::lostConnection | ( | const MAKRti::DtString & | connName, |
| unsigned int | connID, | ||
| const DtInetAddrAndPort & | connAddr, | ||
| void * | usr | ||
| ) | [static] |
Connection loss callback.
Referenced by DtRtiExecHandshakeProcessor().
| int DtRtiExecHandshakeProcessor::lostConnection | ( | const MAKRti::DtString & | connName, |
| unsigned int | connID, | ||
| const DtInetAddrAndPort & | connAddr | ||
| ) | [protected, virtual] |
Connection loss callback.
References DtRtiExecHandshakeProcessor::PendingRequest::currentStatus, DtRtiExecHandshakeProcessor::PendingRequest::destinationHandle, myConnectionIdOfLocalRtiExec, myHaveConnectionIdOfLocalRtiExec, myPendingRequests, DtRtiExecHandshakeProcessor::PendingRequest::pendingOutResponses, sendResponseMsg(), DtRtiExecHandshakeProcessor::PendingRequest::sourceAddress, and DtRtiExecHandshakeProcessor::PendingRequest::sourceHandle.
| bool DtRtiExecHandshakeProcessor::processExecHandshakeDestinations | ( | const DtInetAddrAndPort & | src, |
| DtForwarderPort::DtAddressPortList & | destinations | ||
| ) | [virtual] |
Set forwarding destination list based on source (eg.
which inlet the message was received on) and forwarder network configuration
References localNodeAddress(), and myParent.
Referenced by DtRtiExecHandshakeProcessor().
| bool DtRtiExecHandshakeProcessor::processInToOutMsg | ( | const DtInetAddrAndPort & | src, |
| const DtRtiExecHandshakeMsg & | msg | ||
| ) | [protected, virtual] |
Got Handshake Message from the IN Port to the OUT Port.
References DtRtiExecHandshakeMsg::destConnectionHandle(), DtRtiExecHandshakeMsg::fullyCompliant(), DtRtiExecHandshakeMsg::handshakeStatus(), DtRtiExecHandshakeMsg::HsRequest, DtRtiExecHandshakeMsg::HsResponseDenied, DtRtiExecHandshakeMsg::HsResponseGranted, localNodeAddress(), myConnectionIdOfLocalRtiExec, myHaveConnectionIdOfLocalRtiExec, myLocalRtiExecConnIds, myParent, myPendingRequests, sendResponseMsg(), DtRtiExecHandshakeMsg::sourceHostName(), and DtRtiExecHandshakeMsg::srcConnectionHandle().
Referenced by gotMsgToOutPort().
| bool DtRtiExecHandshakeProcessor::processLanToOutMsg | ( | const DtInetAddrAndPort & | src, |
| const DtRtiExecHandshakeMsg & | msg | ||
| ) | [protected, virtual] |
Got Handshake Message from the LAN Port to the OUT Port.
References DtRtiExecHandshakeMsg::destConnectionHandle(), DtRtiExecHandshakeMsg::fullyCompliant(), DtRtiExecHandshakeMsg::handshakeStatus(), DtRtiExecHandshakeMsg::HsRequest, DtRtiExecHandshakeMsg::HsResponseDenied, DtRtiExecHandshakeMsg::HsResponseGranted, localNodeAddress(), myLocalRtiExecConnIds, myParent, myPendingRequests, sendResponseMsg(), DtRtiExecHandshakeMsg::sourceHostName(), and DtRtiExecHandshakeMsg::srcConnectionHandle().
Referenced by gotMsgToOutPort().
| void DtRtiExecHandshakeProcessor::sendResponseMsg | ( | DtRtiExecHandshakeMsg::DtHandshakeStatus | status, |
| DtHandle | src, | ||
| DtHandle | dest, | ||
| const MAKRti::DtString & | hostName, | ||
| bool | fullyCompliant, | ||
| const DtInetAddrAndPort * | addr = 0 |
||
| ) | [protected, virtual] |
Send a handshake Response based on aggregating all Local responses and all downstream WAN responses.
References DtForwarderIntfcLan, DtForwarderIntfcOut, and myParent.
Referenced by gotMsgToLanPort(), lostConnection(), processInToOutMsg(), and processLanToOutMsg().
unsigned long DtRtiExecHandshakeProcessor::myConnectionIdOfLocalRtiExec [protected] |
If valid, this represents the connID of a local exec.
Referenced by gotMsgToLanPort(), gotRtiExecDisconnect(), lostConnection(), and processInToOutMsg().
Referenced by gotMsgToLanPort(), gotRtiExecDisconnect(), lostConnection(), and processInToOutMsg().
List of local rtiexec Candidates.
Referenced by gotMsgToLanPort(), gotRtiExecDisconnect(), processInToOutMsg(), and processLanToOutMsg().
Referenced by DtRtiExecHandshakeProcessor(), and ~DtRtiExecHandshakeProcessor().
Referenced by DtRtiExecHandshakeProcessor(), and ~DtRtiExecHandshakeProcessor().
DtBoost::shared_ptr<DtForwarderNode> DtRtiExecHandshakeProcessor::myParent [protected] |
Map of outstanding rtiexec Requests to Responses.
Referenced by gotMsgToLanPort(), lostConnection(), processInToOutMsg(), and processLanToOutMsg().
DtRtiExecConnectionFilter<DtRtiExecHandshakeProcessor>* DtRtiExecHandshakeProcessor::myRtiExecConnectionFilter [protected] |
Referenced by DtRtiExecHandshakeProcessor(), and ~DtRtiExecHandshakeProcessor().