MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
DtRtiExecHandshakeProcessor Class Reference

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. More...
 
typedef bool(DtRtiExecHandshakeProcessor::* DestinationProcessingMemberCb )(const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations)
 

Public Member Functions

 DtRtiExecHandshakeProcessor (std::shared_ptr< DtForwarderNode > parent)
 Default Ctor. More...
 
virtual ~DtRtiExecHandshakeProcessor ()
 Default Dtor. More...
 
virtual bool gotMsgToLanPort (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg)
 Got Handshake Message from the IN Port to the LAN Port. More...
 
virtual bool gotMsgToOutPort (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg)
 Got Handshake Message from the IN or LAN Port to the OUT Port. More...
 
virtual bool gotRtiExecConnect (const DtInetAddrAndPort &src, const DtRtiExecConnectMsg &msg)
 Got rtiexec Connect Message from the IN or LAN Port. More...
 
virtual bool gotRtiExecDisconnect (const DtInetAddrAndPort &src, const DtRtiExecDisconnectMsg &msg)
 Got rtiexec Disconnect Message from the IN or LAN Port. More...
 
virtual bool processExecHandshakeDestinations (const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations)
 Set forwarding destination list based on source (eg. More...
 
virtual bool ignoreExecHandshakeDestinations (const DtInetAddrAndPort &src, DtForwarderPort::DtAddressPortList &destinations)
 Exec Handshakes messages are simply forwarded to all LAN destinations. More...
 
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. More...
 
virtual bool isLocalGroupMember (const DtInetAddrAndPort &addr)
 Aids to determine inbound and outbound connections to rtiexec. More...
 
virtual DtInetAddrAndPort locateGroupPortal (const DtInetAddrAndPort &addr)
 
virtual DtInetAddrAndPort localNodeAddress ()
 Return parent node address. More...
 

Static Public Member Functions

static int lostConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr, void *usr)
 Connection loss callback. More...
 

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, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr)
 Connection loss callback. More...
 
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. More...
 
virtual bool processInToOutMsg (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg)
 Got Handshake Message from the IN Port to the OUT Port. More...
 
virtual bool processLanToOutMsg (const DtInetAddrAndPort &src, const DtRtiExecHandshakeMsg &msg)
 Got Handshake Message from the LAN Port to the OUT Port. More...
 

Protected Attributes

std::shared_ptr< DtForwarderNodemyParent
 
DtRtiExecHandshakeFiltermyMsgToLanFilter
 
DtRtiExecHandshakeFiltermyMsgToOutFilter
 
DtRtiExecConnectionFilter
< DtRtiExecHandshakeProcessor > * 
myRtiExecConnectionFilter
 
DtConnIdList myLocalRtiExecConnIds
 List of local rtiexec Candidates. More...
 
DtConnIdToRequestMap myPendingRequests
 Map of outstanding rtiexec Requests to Responses. More...
 
unsigned long myConnectionIdOfLocalRtiExec
 If valid, this represents the connID of a local exec. More...
 
bool myHaveConnectionIdOfLocalRtiExec
 

Detailed Description

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.

Member Typedef Documentation

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.

Constructor & Destructor Documentation

DtRtiExecHandshakeProcessor::DtRtiExecHandshakeProcessor ( std::shared_ptr< DtForwarderNode parent)

Default Ctor.

virtual DtRtiExecHandshakeProcessor::~DtRtiExecHandshakeProcessor ( )
virtual

Default Dtor.

Member Function Documentation

virtual bool DtRtiExecHandshakeProcessor::gotMsgToLanPort ( const DtInetAddrAndPort src,
const DtRtiExecHandshakeMsg msg 
)
virtual

Got Handshake Message from the IN Port to the LAN Port.

virtual bool DtRtiExecHandshakeProcessor::gotMsgToOutPort ( const DtInetAddrAndPort src,
const DtRtiExecHandshakeMsg msg 
)
virtual

Got Handshake Message from the IN or LAN Port to the OUT Port.

virtual bool DtRtiExecHandshakeProcessor::gotRtiExecConnect ( const DtInetAddrAndPort src,
const DtRtiExecConnectMsg msg 
)
virtual

Got rtiexec Connect Message from the IN or LAN Port.

virtual bool DtRtiExecHandshakeProcessor::gotRtiExecDisconnect ( const DtInetAddrAndPort src,
const DtRtiExecDisconnectMsg msg 
)
virtual

Got rtiexec Disconnect Message from the IN or LAN Port.

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

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

virtual bool DtRtiExecHandshakeProcessor::isLocalGroupMember ( const DtInetAddrAndPort addr)
virtual

Aids to determine inbound and outbound connections to rtiexec.

virtual DtInetAddrAndPort DtRtiExecHandshakeProcessor::localNodeAddress ( )
virtual

Return parent node address.

virtual DtInetAddrAndPort DtRtiExecHandshakeProcessor::locateGroupPortal ( const DtInetAddrAndPort addr)
virtual
static int DtRtiExecHandshakeProcessor::lostConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr,
void *  usr 
)
static

Connection loss callback.

virtual int DtRtiExecHandshakeProcessor::lostConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr 
)
protectedvirtual

Connection loss callback.

virtual 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

virtual bool DtRtiExecHandshakeProcessor::processInToOutMsg ( const DtInetAddrAndPort src,
const DtRtiExecHandshakeMsg msg 
)
protectedvirtual

Got Handshake Message from the IN Port to the OUT Port.

virtual bool DtRtiExecHandshakeProcessor::processLanToOutMsg ( const DtInetAddrAndPort src,
const DtRtiExecHandshakeMsg msg 
)
protectedvirtual

Got Handshake Message from the LAN Port to the OUT Port.

virtual void DtRtiExecHandshakeProcessor::sendResponseMsg ( DtRtiExecHandshakeMsg::DtHandshakeStatus  status,
DtHandle  src,
DtHandle  dest,
const MAKRti::DtString &  hostName,
bool  fullyCompliant,
const DtInetAddrAndPort addr = 0 
)
protectedvirtual

Send a handshake Response based on aggregating all Local responses and all downstream WAN responses.

Member Data Documentation

unsigned long DtRtiExecHandshakeProcessor::myConnectionIdOfLocalRtiExec
protected

If valid, this represents the connID of a local exec.

bool DtRtiExecHandshakeProcessor::myHaveConnectionIdOfLocalRtiExec
protected
DtConnIdList DtRtiExecHandshakeProcessor::myLocalRtiExecConnIds
protected

List of local rtiexec Candidates.

DtRtiExecHandshakeFilter* DtRtiExecHandshakeProcessor::myMsgToLanFilter
protected
DtRtiExecHandshakeFilter* DtRtiExecHandshakeProcessor::myMsgToOutFilter
protected
std::shared_ptr<DtForwarderNode> DtRtiExecHandshakeProcessor::myParent
protected
DtConnIdToRequestMap DtRtiExecHandshakeProcessor::myPendingRequests
protected

Map of outstanding rtiexec Requests to Responses.

DtRtiExecConnectionFilter<DtRtiExecHandshakeProcessor>* DtRtiExecHandshakeProcessor::myRtiExecConnectionFilter
protected

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

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)