MAK RTIspy API Documentation for HLA 1.3
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes

The DtForwarderPort is an Abstract Base Class which provides the interface to a collection of connections from which messages may be read and to which messages may be sent. More...

+ Inheritance diagram for DtInOutForwarderPort:
+ Collaboration diagram for DtInOutForwarderPort:

List of all members.

Public Member Functions

virtual ~DtInOutForwarderPort ()
virtual bool isReady () const
 Is the Port fully usable and available?
virtual DtAddressMsgPair getNextMsg ()
 Get the next message to forward and the source connection.
virtual bool getInitializationMsgs (DtForwarderPort::DtSocketSet &socks, std::list< DtAddressMsgPair > &msgs, bool printBeDestMetadata)
 Get the next initialization messages off of a set of pending TCP sockets.
virtual bool getInitializationMsg (DtMsgSocket *sock, DtAddressMsgPair &msg, bool printBeDestMetadata)
 Get the next initialization message off of a pending TCP socket.
virtual void sendByTransport (const DtForwarderMsg &msg) const
 Check transport metadata and send message to appropriate destinations.
virtual void sendToAllReliable (const DtForwarderMsg &msg) const
 Send a message to all available destinations.
virtual void sendToListReliable (const DtForwarderMsg &msg, const DtAddressPortList &destinations) const
 Send a message to the specified list of destinations excluding the list of filtered destinations.
virtual void selectParams (MAKRti::DtSelectParamWithWrite &selectParams)
 Add this port's current select() notification set to the passed set.
virtual void updateRoutes ()
 Handle changes to the Routing map.
virtual void processInitializationMessages ()
virtual int checkConnectionStatus (const DtInetAddrAndPort *target=0)
 Test for lost connections - returns true if targeted connection is active or if no target specified returns false if at least one drop detected.
virtual void clearNeededConnections ()
 Clear the list of needed forwarder connections.
virtual unsigned int abortPendingConnections ()
 Abort any embryonic connections.
virtual unsigned int pendingConnectionsAborted ()
 Return a count of aborted or failed connection attempts.
virtual DtAddressPortList connections () const
 Get the list of all current connections to this port.
virtual void listenToMulticastGroup (const MAKRti::DtInetAddr &mcastAddr)
 Listen / drop multicast groups (not implemented in this class)
virtual void dropMulticastGroup (const MAKRti::DtInetAddr &mcastAddr)
virtual bool updateFederateConnectionId (unsigned long orig, unsigned long final)
 Update locally connected federate connection ID (LAN-port-only)
virtual bool flush ()
 Flush any pending messages.
virtual bool flushOnly ()
 Flush any pending messages. Does not do any socket disconnect processing.
virtual MAKRti::DtString connectionListToString (const char *separator=" : ") const
 Print the current connection list.
virtual bool populateConnectionInformation (unsigned int &numForwarderToForwarderConns, std::vector< MAKRti::DtString > &forwarderIdentifiers, std::vector< MAKRti::DtString > &forwarderConnectionHostNames, std::vector< DtInetAddrAndPort > &forwarderConnectionAddrs) const
virtual void socketAdditionCb (DtTcpMsgSocket *sock)
virtual void sendMacAddrMsg (DtTcpMsgSocket *sock)
 Send a populated DtMacAddrMsg to the specified socket.
virtual void sendPortMsg (DtTcpMsgSocket *sock)
 Send a message indicating our local socket port for the given socket.
virtual void socketEstablishedCb (DtTcpMsgSocket *sock)
virtual void socketRemovalCb (DtTcpMsgSocket *sock)
virtual void processForwarderNodeInfoMsg (const DtForwarderPort::DtAddressMsgPair &msg)
virtual void processMacAddrMsg (const DtForwarderPort::DtAddressMsgPair &msg)
virtual void processPortMsg (const DtForwarderPort::DtAddressMsgPair &msgPair)
 Process a message indicating the listening port of the forwarder on the other end of a socket.
void sendForwarderNodeInfoMsg (DtTcpMsgSocket *sock)
void sendForwarderNodeInfoMsg ()

Static Public Member Functions

static DtForwarderPortcreate (const DtRIDParameters *params, const DtBoost::shared_ptr< DtRouteMap > routes, const MAKRti::DtInetAddr &host, int forwarderPort, const MAKRti::DtInetAddr &additionalForwarderToConnectTo)
 Creates an instance of a DtInOutForwarderPort.
static void setCreatorFunction (DtForwarderPortCreatorFcn creator)
 Call this function to set an alternate creator function With this function, users can replace this DtInOutForwarderPort with their own derived class.
static void socketAdditionCb (DtTcpMsgSocket *sock, void *usr)
 Callback for new connections.
static void socketEstablishedCb (DtTcpMsgSocket *sock, void *usr)
 Callback for established connections.
static void socketRemovalCb (DtTcpMsgSocket *sock, void *usr)
 Callback for dropped connections.

Protected Member Functions

 DtInOutForwarderPort (const DtRIDParameters *params, DtBoost::shared_ptr< DtRouteMap > routes, const MAKRti::DtInetAddr &host, int forwarderPort, const MAKRti::DtInetAddr &forwarderAddrToConnectTo)
 Base Ctor - called by default creator.
virtual void initializeConnections ()
 Initiates a connection to each adjacent node.
virtual bool connectToPeer (const DtInetAddrAndPort &addrToConnectTo)
 Returns whether sock was ok()
virtual int processLostConnection (DtTcpMsgSocket *sock)
 Handle lost connections.
void connectionCompleted (const DtInetAddrAndPort &addrAndPort, DtTcpMsgSocket *sock)
 The new socket has been processed (either via routes files or dynamically).
void addSocketUsingRoutesFile (DtTcpMsgSocket *sock, const DtInetAddrAndPort &addrAndPort)
 Add this socket to connection using routes file information.
bool addSocketDynamically (DtTcpMsgSocket *sock)
 Add socket to connections dynamically.
void addConnection (const DtInetAddrAndPort &newConn, DtTcpMsgSocket *sock)
void removeConnection (DtAddrToConnMap::iterator pos)
 DtInOutForwarderPort ()
 Default Ctor, Copy Ctor, Assignment - unimplemented.
 DtInOutForwarderPort (const DtInOutForwarderPort &orig)
DtInOutForwarderPortoperator= (const DtInOutForwarderPort &orig)
bool removeFromPendingList (DtTcpMsgSocket *addr)
 Remove a connection from the pending list (return true if found and removed)
void becomeRootForwarderNode ()
 Sets this forwarder node as the root.

Protected Attributes

bool myIsReady
DtPeerToPeerTcpSockMgrmyConnectionMgr
DtForwarderPort::DtAddrToConnMap myConnections
DtForwarderPort::DtAddrToConnMap::const_iterator myNextConnection
DtForwarderPort::DtAddrToConnMap::const_iterator myLastConnection
std::map< DtInetAddrAndPort,
DtTcpMsgSocket * > 
myAddrToSockMap
DtForwarderPort::DtSocketSet myPendingConnections
 Connections which are in process.
DtForwarderPort::DtSocketSet myPrePendingConnections
DtForwarderPort::DtSocketSet myPostPendingConnections
DtForwarderPort::DtSocketSet myUnknownPortConnections
std::map< DtInetAddrAndPort,
DtString > 
myNeededConnections
 Connections needed before the forwarding network is complete.
std::map< DtInetAddrAndPort,
DtString > 
myStillNeededConnections
 Connections still needed before the forwarding network is complete.
std::map< DtInetAddrAndPort,
DtInetAddrAndPort
myUsedToListeningMap
 Map of actual address/port pairs to listening address/port pairs, which are also used for identification.
DtForwarderPort::DtSocketList myInitiatedConnections
DtForwarderPort::DtSocketSet myExpiredConnections
DtForwarderPort::DtSocketSet myDiscardedRemoteSockets
DtUdpMsgSocketmyLegacyUdpConnection
std::map< DtInetAddrAndPort,
unsigned long long > 
myMacAddrsOfConnectedForwardersMap
bool myIsRootForwarderNode
MAKRti::DtClock myClock
std::map< DtTcpMsgSocket
*, MAKRti::DtTime > 
mySktSendTimeMap
MAKRti::DtInetDevice myHostIf
 The interface used for connections with other forwarders.
int myCompressionLevel

Static Protected Attributes

static DtForwarderPortCreatorFcn theCreator = 0

Detailed Description

The DtForwarderPort is an Abstract Base Class which provides the interface to a collection of connections from which messages may be read and to which messages may be sent.


Constructor & Destructor Documentation

DtInOutForwarderPort::DtInOutForwarderPort ( const DtRIDParameters params,
DtBoost::shared_ptr< DtRouteMap routes,
const MAKRti::DtInetAddr &  host,
int  forwarderPort,
const MAKRti::DtInetAddr &  forwarderAddrToConnectTo 
) [protected]

Default Ctor, Copy Ctor, Assignment - unimplemented.

Referenced by create().


Member Function Documentation

Abort any embryonic connections.

Implements DtForwarderPort.

References DtPeerToPeerTcpSockMgr::abortPendingConnections(), and myConnectionMgr.

void DtInOutForwarderPort::addConnection ( const DtInetAddrAndPort newConn,
DtTcpMsgSocket sock 
) [protected]

Add socket to connections dynamically.

Returns whether the socket was added to the routes map.

References DtTcpMsgSocket::destination(), and DtForwarderPort::myRoutes.

Referenced by socketAdditionCb(), and socketEstablishedCb().

void DtInOutForwarderPort::addSocketUsingRoutesFile ( DtTcpMsgSocket sock,
const DtInetAddrAndPort addrAndPort 
) [protected]

Sets this forwarder node as the root.

References myIsRootForwarderNode.

Referenced by initializeConnections(), and socketRemovalCb().

int DtInOutForwarderPort::checkConnectionStatus ( const DtInetAddrAndPort target = 0) [virtual]

Test for lost connections - returns true if targeted connection is active or if no target specified returns false if at least one drop detected.

Implements DtForwarderPort.

References DtForwarderPort::connectionLost(), DtTcpMsgSocket::isConnected(), myClock, myConnectionMgr, myConnections, DtForwarderPort::myRoutes, mySktSendTimeMap, DtPeerToPeerTcpSockMgr::processConnections(), processInitializationMessages(), processLostConnection(), and DtTcpMsgSocket::testConnectionStatus().

Clear the list of needed forwarder connections.

Implements DtForwarderPort.

References myNeededConnections, and myStillNeededConnections.

void DtInOutForwarderPort::connectionCompleted ( const DtInetAddrAndPort addrAndPort,
DtTcpMsgSocket sock 
) [protected]
MAKRti::DtString DtInOutForwarderPort::connectionListToString ( const char *  separator = " : ") const [virtual]

Print the current connection list.

References DtForwarderPort::myAddress, and myConnections.

Referenced by connectionCompleted(), and socketRemovalCb().

Get the list of all current connections to this port.

Implements DtForwarderPort.

References myConnections.

bool DtInOutForwarderPort::connectToPeer ( const DtInetAddrAndPort addrToConnectTo) [protected, virtual]
DtForwarderPort * DtInOutForwarderPort::create ( const DtRIDParameters params,
const DtBoost::shared_ptr< DtRouteMap routes,
const MAKRti::DtInetAddr &  host,
int  forwarderPort,
const MAKRti::DtInetAddr &  additionalForwarderToConnectTo 
) [static]

Creates an instance of a DtInOutForwarderPort.

References DtInOutForwarderPort(), and theCreator.

Referenced by setCreatorFunction().

virtual void DtInOutForwarderPort::dropMulticastGroup ( const MAKRti::DtInetAddr &  mcastAddr) [inline, virtual]

Implements DtForwarderPort.

Flush any pending messages. Does not do any socket disconnect processing.

References myConnections.

Referenced by flush(), and socketRemovalCb().

bool DtInOutForwarderPort::getInitializationMsg ( DtMsgSocket sock,
DtAddressMsgPair msg,
bool  printBeDestMetadata 
) [virtual]

Get the next initialization message off of a pending TCP socket.

References DtRtiMtdMcastAddr::get(), DtRtiMsg::kindString(), DtForwarderPort::myParams, and DtMsgSocket::recvMessageWithSrc().

Referenced by getInitializationMsgs(), and processInitializationMessages().

bool DtInOutForwarderPort::getInitializationMsgs ( DtForwarderPort::DtSocketSet socks,
std::list< DtAddressMsgPair > &  msgs,
bool  printBeDestMetadata 
) [virtual]

Get the next initialization messages off of a set of pending TCP sockets.

References getInitializationMsg().

Referenced by processInitializationMessages().

void DtInOutForwarderPort::initializeConnections ( ) [protected, virtual]
bool DtInOutForwarderPort::isReady ( ) const [virtual]

Is the Port fully usable and available?

Implements DtForwarderPort.

References myIsReady.

virtual void DtInOutForwarderPort::listenToMulticastGroup ( const MAKRti::DtInetAddr &  mcastAddr) [inline, virtual]

Listen / drop multicast groups (not implemented in this class)

Implements DtForwarderPort.

DtInOutForwarderPort& DtInOutForwarderPort::operator= ( const DtInOutForwarderPort orig) [protected]

Return a count of aborted or failed connection attempts.

Implements DtForwarderPort.

References myConnectionMgr, and DtPeerToPeerTcpSockMgr::pendingConnectionsAborted().

bool DtInOutForwarderPort::populateConnectionInformation ( unsigned int &  numForwarderToForwarderConns,
std::vector< MAKRti::DtString > &  forwarderIdentifiers,
std::vector< MAKRti::DtString > &  forwarderConnectionHostNames,
std::vector< DtInetAddrAndPort > &  forwarderConnectionAddrs 
) const [virtual]
int DtInOutForwarderPort::processLostConnection ( DtTcpMsgSocket sock) [protected, virtual]
void DtInOutForwarderPort::removeConnection ( DtAddrToConnMap::iterator  pos) [protected]

Remove a connection from the pending list (return true if found and removed)

References myPendingConnections, myPostPendingConnections, myPrePendingConnections, and myUnknownPortConnections.

Referenced by connectionCompleted(), processMacAddrMsg(), and socketRemovalCb().

void DtInOutForwarderPort::selectParams ( MAKRti::DtSelectParamWithWrite &  selectParams) [virtual]

Add this port's current select() notification set to the passed set.

Implements DtForwarderPort.

References myConnections.

void DtInOutForwarderPort::sendByTransport ( const DtForwarderMsg msg) const [virtual]

Check transport metadata and send message to appropriate destinations.

Implements DtForwarderPort.

void DtInOutForwarderPort::sendToAllReliable ( const DtForwarderMsg msg) const [virtual]
void DtInOutForwarderPort::sendToListReliable ( const DtForwarderMsg msg,
const DtAddressPortList destinations 
) const [virtual]

Call this function to set an alternate creator function With this function, users can replace this DtInOutForwarderPort with their own derived class.

References create(), DtBindCreator(), and theCreator.

void DtInOutForwarderPort::socketAdditionCb ( DtTcpMsgSocket sock,
void *  usr 
) [static]

Callback for new connections.

Referenced by DtInOutForwarderPort(), and ~DtInOutForwarderPort().

void DtInOutForwarderPort::socketEstablishedCb ( DtTcpMsgSocket sock,
void *  usr 
) [static]

Callback for established connections.

Referenced by DtInOutForwarderPort(), and ~DtInOutForwarderPort().

void DtInOutForwarderPort::socketRemovalCb ( DtTcpMsgSocket sock,
void *  usr 
) [static]

Callback for dropped connections.

Referenced by DtInOutForwarderPort(), and ~DtInOutForwarderPort().

bool DtInOutForwarderPort::updateFederateConnectionId ( unsigned long  orig,
unsigned long  final 
) [inline, virtual]

Update locally connected federate connection ID (LAN-port-only)

Implements DtForwarderPort.


Member Data Documentation

MAKRti::DtClock DtInOutForwarderPort::myClock [protected]
MAKRti::DtInetDevice DtInOutForwarderPort::myHostIf [protected]

The interface used for connections with other forwarders.

Referenced by addSocketUsingRoutesFile(), connectToPeer(), and DtInOutForwarderPort().

DtForwarderPort::DtAddrToConnMap::const_iterator DtInOutForwarderPort::myLastConnection [protected]

Referenced by processMacAddrMsg().

Connections needed before the forwarding network is complete.

Referenced by clearNeededConnections(), initializeConnections(), and updateRoutes().

DtForwarderPort::DtAddrToConnMap::const_iterator DtInOutForwarderPort::myNextConnection [protected]
std::map< DtTcpMsgSocket*, MAKRti::DtTime > DtInOutForwarderPort::mySktSendTimeMap [mutable, protected]

Connections still needed before the forwarding network is complete.

Referenced by addSocketUsingRoutesFile(), clearNeededConnections(), initializeConnections(), and updateRoutes().

Map of actual address/port pairs to listening address/port pairs, which are also used for identification.

Referenced by addConnection(), processPortMsg(), and socketRemovalCb().

Referenced by create(), and setCreatorFunction().


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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)