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 | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
DtForwarderNode Class Reference

The DtForwarderNode class defines a 3-way message distribution architecture for building forwarding networks of arbitrary complexity. More...

+ Collaboration diagram for DtForwarderNode:

Public Types

typedef DtMessageProcessor
< DtInetAddrAndPort,
DtForwarderPort::DtForwarderMsg
DtForwarderMessageProcessor
 
typedef DtForwarderNode *(* DtForwarderNodeCreatorFcn )(const DtRIDParameters *, DtForwarderMessageProcessor *, DtForwarderMessageProcessor *, int forwarderPort, MAKRti::DtInetEndpoint forwarderAddrToConnectTo, bool writeToPipeWhenReady)
 DtForwarderNode creator signature. More...
 

Public Member Functions

virtual ~DtForwarderNode ()
 
virtual int tick (double maxTime=0.0f)
 Forward pending inbound messages. More...
 
virtual void addTickCallback (DtTickCbFn fn, void *usr, MAKRti::DtTime interval)
 Register a callback to be called during tick, but only at the given interval. More...
 
virtual void removeTickCallback (DtTickCbFn fn, void *usr)
 
virtual bool ready () const
 Is the forwarder fully connected and actively forwarding? More...
 
virtual const DtRIDParametersparams () const
 Get the RID parameters object. More...
 
virtual DtBoost::shared_ptr
< DtRouteMap
routeMap () const
 Get the Route Map. More...
 
virtual DtForwarderPortinPort () const
 Get a pointer to the IN/OUT/LAN port. More...
 
virtual DtForwarderPortlanPort () const
 
virtual DtForwarderPortoutPort () const
 
virtual void selectParams (MAKRti::DtSelectParamWithWrite &selectParams)
 Get the current set of file descriptors to select against for notification. More...
 
virtual unsigned long localNodeId () const
 Get the ID of this Node for Routing purposes. More...
 
const DtInetAddrAndPortlocalNodeAddress () const
 Get the address of this Node for Routing purposes Not virtual as used in CTOR. More...
 
virtual MAKRti::DtString localNodeName () const
 Get the forwarder name. More...
 
virtual MAKRti::DtString localNodeHostName () const
 Get the forwarder host name. More...
 
virtual void processInToLanMsg (DtForwarderPort::DtAddressMsgPair &msg)
 Process and Send Msg from IN to LAN. More...
 
virtual void processInToOutMsg (DtForwarderPort::DtAddressMsgPair &msg)
 Process and Send Msg from IN to OUT. More...
 
virtual void processLanToOutMsg (DtForwarderPort::DtAddressMsgPair &msg)
 Process and Send Msg from LAN to OUT. More...
 
virtual void sendToLanPort (DtForwarderPort::DtAddressMsgPair &msg)
 Send message directly to LAN port. More...
 
virtual void sendToOutPort (DtForwarderPort::DtAddressMsgPair &msg)
 Send message directly to OUT port (all destinations) More...
 
virtual void sendToOutPort (DtForwarderPort::DtAddressMsgPair &msg, const DtRouteMap::DtAddressPortList &destinations)
 Send message directly to the specified OUT port destinations. More...
 
virtual void registerOutPortProcessor (DtForwarderMessageProcessor::Filter *processor)
 Add/Remove a Message Processor for IN or LAN to OUT messages (LAN to OUT messages identifiable since src == local) More...
 
virtual void unregisterOutPortProcessor (DtForwarderMessageProcessor::Filter *processor)
 
virtual void registerLanPortProcessor (DtForwarderMessageProcessor::Filter *processor)
 Add/Remove a Message Processor for IN to LAN messages. More...
 
virtual void unregisterLanPortProcessor (DtForwarderMessageProcessor::Filter *processor)
 
virtual void packageAndSendReliable (DtRtiMsg &msg, unsigned int sendViaIntfc)
 Wrap a DtRtiMsg in a DtForwarderMsg envelope and send to the indicated interfaces. More...
 
virtual void packageAndSendReliable (DtRtiMsg &msg, unsigned int sendViaIntfc, const DtRouteMap::DtAddressPortList &destinations)
 
virtual void setMetadataControl (DtMetadataType type, bool onOff)
 Set/Get metadata control indicators. More...
 
virtual bool isMetadataEnabled (DtMetadataType type)
 
virtual void lanPortListenToMulticastGroup (const MAKRti::DtInetAddr &mcastAddr)
 Listen/Drop multicast groups on LAN port's UDP receive socket. More...
 
virtual void lanPortDropMulticastGroup (const MAKRti::DtInetAddr &mcastAddr)
 
virtual bool lanPortUpdateFederateConnectionId (unsigned long orig, unsigned long final)
 Set locally connected federate's connectionId to final value specified by federate in its Connect Confirm message. More...
 
virtual DtInetAddrAndPort nextForwarderOnRoute (const DtInetAddrAndPort &target)
 Locate the next forwarder connection on the route to the targeted address. More...
 
virtual DtInetAddrAndPort nextForwarderOnRoute (const MAKRti::DtString &targetGroupName)
 
virtual DtInetAddrAndPort rootForwarder ()
 Return the IP address of the rtiexec's root forwarder. More...
 
virtual DtInetAddrAndPort nextHopToExec ()
 Return the next upstream outbound forwarder's IP address on the path toward the rtiexec's root forwarder. More...
 
virtual void abortPendingConnections ()
 Abort setting up embryonic connections. More...
 
virtual unsigned int abortedConnections ()
 Get the count of failed/aborted connection attempts. More...
 
virtual bool connectionInformation (unsigned int &numForwarderToForwarderConns, std::vector< MAKRti::DtString > &forwarderIdentifiers, std::vector< MAKRti::DtString > &forwarderConnectionHostNames, std::vector< DtInetAddrAndPort > &forwarderConnectionAddrs, unsigned int &numForwarderExecConns, unsigned int &numForwarderClientConns, std::vector< MAKRti::DtString > &clientConnectionHostNames, std::vector< MAKRti::DtInetAddr > &clientConnectionAddrs)
 Get connections information from the forwarder. More...
 
virtual void continueWithoutUnconnectedFws ()
 If the forwarder is currently waiting for remote forwarder connections, this method tells it to abandon any unconnected forwarders and continue on without them. More...
 
virtual void connectForwarder (const DtString &host, const MAKRti::DtInetAddr &ipAddress, int port)
 Connect this forwarder to the given forwader. More...
 

Static Public Member Functions

static DtForwarderNodecreate (const DtRIDParameters *params, DtForwarderMessageProcessor *toOutProcessor, DtForwarderMessageProcessor *toLanProcessor, int forwarderPort, MAKRti::DtInetEndpoint forwarderAddrToConnectTo, bool writeToPipeWhenReady)
 Creates an instance of a DtForwarderNode. More...
 
static void setCreatorFunction (DtForwarderNodeCreatorFcn creator)
 Call this function to set an alternate creator function With this function, users can replace this DtForwarderNode with their own derived class. More...
 
static int newInPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr, void *usr)
 Callbacks. More...
 
static int newOutPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr, void *usr)
 
static int lostInPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr, void *usr)
 
static int lostOutPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr, void *usr)
 
static void inOutForwarderPortReady (unsigned long forwarderNodeId, void *usr)
 

Protected Member Functions

 DtForwarderNode (const DtRIDParameters *params, DtForwarderMessageProcessor *toOutProcessor, DtForwarderMessageProcessor *toLanProcessor, int forwarderPort, const MAKRti::DtInetEndpoint &forwarderAddrToConnectTo, bool writeToPipeWhenReady)
 Base Constructor. More...
 
 DtForwarderNode ()
 Default Ctor, Copy Ctor, and Assignment - unimplemented. More...
 
 DtForwarderNode (const DtForwarderNode &orig)
 
DtForwarderNodeoperator= (const DtForwarderNode &orig)
 
int refreshConnections ()
 Ensure that all connections are stable and connected. More...
 
void writeMessageToPipe (const MAKRti::DtString &msg)
 Write message to rtiexec pipe. More...
 
int newInPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr)
 Callbacks. More...
 
int newOutPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr)
 
int lostInPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr)
 
int lostOutPortConnection (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr)
 
void inOutForwarderPortReady (unsigned long forwarderNodeId)
 

Protected Attributes

const DtRIDParametersmyParams
 RID file configuration. More...
 
DtForwarderMessageProcessormyToOutMsgProcessor
 Outgoing message processors allow user defined operations to be performed on messages before sending to specified port. More...
 
DtForwarderMessageProcessormyToLanMsgProcessor
 
DtForwarderFaultProcessormyFaultProcessor
 Fault handler. More...
 
DtClock myClock
 A clock used for basic timing. More...
 
bool myIsReady
 Is the Forwarder in a "Good" state and ready to forward? More...
 
DtBoost::shared_ptr< DtRouteMapmyRoutes
 Routing file configuration Keep this variable before myLocalPort in the class declaration!! More...
 
DtForwarderPortmyRemoteInputPort
 IN Port - incoming message path from other DtForwarderNodes. More...
 
DtForwarderPortmyRemoteOutputPort
 OUT Port - outgoing message path to other DtForwarderNodes. More...
 
DtInOutForwarderPortmyRemoteInOutPort
 In/Out port used by default for both in and out. More...
 
DtForwarderPortmyLocalPort
 LAN Port - bidirectional message path to/from local message sources/sinks Keep this variable after myRoutes in the class declaration!! More...
 
DtInetAddrAndPort myLocalNodeAddress
 IP address and port of the local node. More...
 
bool myAddTcpDestinationListMetadata
 Metadata control indicators. More...
 
bool myAddUdpDestinationListMetadata
 
bool myAddTransportTypeMetadata
 
bool myAddMcastMetadata
 
bool myWriteToPipeWhenReady
 Whether the forwarder should write to the pipe once it is ready. More...
 
std::list< DtTickCallbackInfomyTickCallbacks
 List of tick callbacks. More...
 

Static Protected Attributes

static const MAKRti::DtInetAddr theFirstHostInetAddr
 
static DtForwarderNodeCreatorFcn theCreator
 
virtual int forwarderToForwarderConnectionChanged (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int oldConnID, unsigned int newConnID, const DtInetAddrAndPort &connAddr)
 Callback for changed forwarder<->forwarder connections. More...
 
static int forwarderToForwarderConnectionChanged (const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int oldConnID, unsigned int newConnID, const DtInetAddrAndPort &connAddr, void *usr)
 Callback for changed forwarder<->forwarder connections. More...
 

Detailed Description

The DtForwarderNode class defines a 3-way message distribution architecture for building forwarding networks of arbitrary complexity.

The DtForwarderNode has 3 interfaces: IN: - incoming message path from other DtForwarderNodes OUT: - outgoing message path to other DtForwarderNodes LAN: - bidirectional message path to/from local message sources/sinks ( generally HLA Federates )

Forwarding Pathways: 1) Messages from LAN will be forwarded out to upstream/downstream forwarders in hierarchical configurations, to the portal forwarders in foreign Forwarder Groups, and to other LAN connections 2) Messages from IN will be forwarded out to LAN 3) Messages from IN can ONLY be forwarded out to OUT under the following conditions: (a) The forwarder is acting as a bridge (aka "link") node between upstream forwarders and downstream forwarders in a hierarchical network. In this case the user must configure the route and specify the endpoints and the bridge forwarder. This will create an entry in the DtRouteMap myRoutesByLinkAddrMap map. Messages can be forwarded FROM upstream sources TO downstream recipients and vice-versa. (b) The forwarder is acting as a portal forwarder in a Forwarder Group. Only certain internal messages will be forwarded, and only FROM foreign Forwarder Groups TO members of the local group, not in the reverse direction. The reverse direction is taken care of by virtue of the fact that all the local group members will have a connection to a portal in the foreign Forwarder Groups so the messages do not need to pass through the local portal. Some messages require the local portal to aggregate responses of the local group members, but the group members individual response messages are not forwarded in those cases.

Note: These pathways do not guarantee that a message will be forwarded as described above. Outlets may be altered by filters and destinations can be added or removed based on the type of message and the network topology. An optional filter may be applied to all messages forwarded to OUT to allow a final message processing step before passing the message.

Member Typedef Documentation

typedef DtForwarderNode*(* DtForwarderNode::DtForwarderNodeCreatorFcn)(const DtRIDParameters *, DtForwarderMessageProcessor *, DtForwarderMessageProcessor *, int forwarderPort, MAKRti::DtInetEndpoint forwarderAddrToConnectTo, bool writeToPipeWhenReady)

DtForwarderNode creator signature.

Constructor & Destructor Documentation

DtForwarderNode::DtForwarderNode ( const DtRIDParameters params,
DtForwarderMessageProcessor toOutProcessor,
DtForwarderMessageProcessor toLanProcessor,
int  forwarderPort,
const MAKRti::DtInetEndpoint &  forwarderAddrToConnectTo,
bool  writeToPipeWhenReady 
)
protected

Base Constructor.

  • DtForwarderNodes should be constructed using the standard plugin creator method
virtual DtForwarderNode::~DtForwarderNode ( )
virtual
DtForwarderNode::DtForwarderNode ( )
protected

Default Ctor, Copy Ctor, and Assignment - unimplemented.

DtForwarderNode::DtForwarderNode ( const DtForwarderNode orig)
protected

Member Function Documentation

unsigned int DtForwarderNode::abortedConnections ( )
inlinevirtual

Get the count of failed/aborted connection attempts.

References lanPort(), and outPort().

virtual void DtForwarderNode::abortPendingConnections ( )
virtual

Abort setting up embryonic connections.

virtual void DtForwarderNode::addTickCallback ( DtTickCbFn  fn,
void *  usr,
MAKRti::DtTime  interval 
)
virtual

Register a callback to be called during tick, but only at the given interval.

virtual void DtForwarderNode::connectForwarder ( const DtString &  host,
const MAKRti::DtInetAddr &  ipAddress,
int  port 
)
virtual

Connect this forwarder to the given forwader.

virtual bool DtForwarderNode::connectionInformation ( unsigned int &  numForwarderToForwarderConns,
std::vector< MAKRti::DtString > &  forwarderIdentifiers,
std::vector< MAKRti::DtString > &  forwarderConnectionHostNames,
std::vector< DtInetAddrAndPort > &  forwarderConnectionAddrs,
unsigned int &  numForwarderExecConns,
unsigned int &  numForwarderClientConns,
std::vector< MAKRti::DtString > &  clientConnectionHostNames,
std::vector< MAKRti::DtInetAddr > &  clientConnectionAddrs 
)
virtual

Get connections information from the forwarder.

virtual void DtForwarderNode::continueWithoutUnconnectedFws ( )
virtual

If the forwarder is currently waiting for remote forwarder connections, this method tells it to abandon any unconnected forwarders and continue on without them.

static DtForwarderNode* DtForwarderNode::create ( const DtRIDParameters params,
DtForwarderMessageProcessor toOutProcessor,
DtForwarderMessageProcessor toLanProcessor,
int  forwarderPort,
MAKRti::DtInetEndpoint  forwarderAddrToConnectTo,
bool  writeToPipeWhenReady 
)
static

Creates an instance of a DtForwarderNode.

static int DtForwarderNode::forwarderToForwarderConnectionChanged ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  oldConnID,
unsigned int  newConnID,
const DtInetAddrAndPort connAddr,
void *  usr 
)
static

Callback for changed forwarder<->forwarder connections.

virtual int DtForwarderNode::forwarderToForwarderConnectionChanged ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  oldConnID,
unsigned int  newConnID,
const DtInetAddrAndPort connAddr 
)
virtual

Callback for changed forwarder<->forwarder connections.

static void DtForwarderNode::inOutForwarderPortReady ( unsigned long  forwarderNodeId,
void *  usr 
)
static
void DtForwarderNode::inOutForwarderPortReady ( unsigned long  forwarderNodeId)
protected
DtForwarderPort * DtForwarderNode::inPort ( ) const
inlinevirtual

Get a pointer to the IN/OUT/LAN port.

References myRemoteInputPort.

virtual bool DtForwarderNode::isMetadataEnabled ( DtMetadataType  type)
virtual
DtForwarderPort * DtForwarderNode::lanPort ( ) const
inlinevirtual

References myLocalPort.

Referenced by abortedConnections().

virtual void DtForwarderNode::lanPortDropMulticastGroup ( const MAKRti::DtInetAddr &  mcastAddr)
virtual
virtual void DtForwarderNode::lanPortListenToMulticastGroup ( const MAKRti::DtInetAddr &  mcastAddr)
virtual

Listen/Drop multicast groups on LAN port's UDP receive socket.

virtual bool DtForwarderNode::lanPortUpdateFederateConnectionId ( unsigned long  orig,
unsigned long  final 
)
virtual

Set locally connected federate's connectionId to final value specified by federate in its Connect Confirm message.

const DtInetAddrAndPort& DtForwarderNode::localNodeAddress ( ) const

Get the address of this Node for Routing purposes Not virtual as used in CTOR.

virtual MAKRti::DtString DtForwarderNode::localNodeHostName ( ) const
virtual

Get the forwarder host name.

virtual unsigned long DtForwarderNode::localNodeId ( ) const
virtual

Get the ID of this Node for Routing purposes.

virtual MAKRti::DtString DtForwarderNode::localNodeName ( ) const
virtual

Get the forwarder name.

static int DtForwarderNode::lostInPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr,
void *  usr 
)
static
int DtForwarderNode::lostInPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr 
)
protected
static int DtForwarderNode::lostOutPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr,
void *  usr 
)
static
int DtForwarderNode::lostOutPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr 
)
protected
static int DtForwarderNode::newInPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr,
void *  usr 
)
static

Callbacks.

int DtForwarderNode::newInPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr 
)
protected

Callbacks.

static int DtForwarderNode::newOutPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr,
void *  usr 
)
static
int DtForwarderNode::newOutPortConnection ( const MAKRti::DtString &  connName,
const MAKRti::DtString &  hostName,
unsigned int  connID,
const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &  connAddr 
)
protected
virtual DtInetAddrAndPort DtForwarderNode::nextForwarderOnRoute ( const DtInetAddrAndPort target)
virtual

Locate the next forwarder connection on the route to the targeted address.

Returns the address only if connection is active (ie. the socket is connected).

virtual DtInetAddrAndPort DtForwarderNode::nextForwarderOnRoute ( const MAKRti::DtString &  targetGroupName)
virtual
virtual DtInetAddrAndPort DtForwarderNode::nextHopToExec ( )
virtual

Return the next upstream outbound forwarder's IP address on the path toward the rtiexec's root forwarder.

DtForwarderNode& DtForwarderNode::operator= ( const DtForwarderNode orig)
protected
DtForwarderPort * DtForwarderNode::outPort ( ) const
inlinevirtual
virtual void DtForwarderNode::packageAndSendReliable ( DtRtiMsg msg,
unsigned int  sendViaIntfc 
)
virtual

Wrap a DtRtiMsg in a DtForwarderMsg envelope and send to the indicated interfaces.

Always sends via reliable transport.

virtual void DtForwarderNode::packageAndSendReliable ( DtRtiMsg msg,
unsigned int  sendViaIntfc,
const DtRouteMap::DtAddressPortList destinations 
)
virtual
const DtRIDParameters * DtForwarderNode::params ( ) const
inlinevirtual

Get the RID parameters object.

References myParams.

virtual void DtForwarderNode::processInToLanMsg ( DtForwarderPort::DtAddressMsgPair msg)
virtual

Process and Send Msg from IN to LAN.

virtual void DtForwarderNode::processInToOutMsg ( DtForwarderPort::DtAddressMsgPair msg)
virtual

Process and Send Msg from IN to OUT.

virtual void DtForwarderNode::processLanToOutMsg ( DtForwarderPort::DtAddressMsgPair msg)
virtual

Process and Send Msg from LAN to OUT.

bool DtForwarderNode::ready ( ) const
inlinevirtual

Is the forwarder fully connected and actively forwarding?

References myIsReady.

int DtForwarderNode::refreshConnections ( )
protected

Ensure that all connections are stable and connected.

virtual void DtForwarderNode::registerLanPortProcessor ( DtForwarderMessageProcessor::Filter processor)
virtual

Add/Remove a Message Processor for IN to LAN messages.

virtual void DtForwarderNode::registerOutPortProcessor ( DtForwarderMessageProcessor::Filter processor)
virtual

Add/Remove a Message Processor for IN or LAN to OUT messages (LAN to OUT messages identifiable since src == local)

virtual void DtForwarderNode::removeTickCallback ( DtTickCbFn  fn,
void *  usr 
)
virtual
virtual DtInetAddrAndPort DtForwarderNode::rootForwarder ( )
virtual

Return the IP address of the rtiexec's root forwarder.

DtBoost::shared_ptr< DtRouteMap > DtForwarderNode::routeMap ( ) const
inlinevirtual

Get the Route Map.

References myRoutes.

virtual void DtForwarderNode::selectParams ( MAKRti::DtSelectParamWithWrite &  selectParams)
virtual

Get the current set of file descriptors to select against for notification.

virtual void DtForwarderNode::sendToLanPort ( DtForwarderPort::DtAddressMsgPair msg)
virtual

Send message directly to LAN port.

Referenced by DtConnectionLossDetectorFilter::doMessageProcessing().

virtual void DtForwarderNode::sendToOutPort ( DtForwarderPort::DtAddressMsgPair msg)
virtual

Send message directly to OUT port (all destinations)

Referenced by DtConnectionLossDetectorFilter::doMessageProcessing().

virtual void DtForwarderNode::sendToOutPort ( DtForwarderPort::DtAddressMsgPair msg,
const DtRouteMap::DtAddressPortList destinations 
)
virtual

Send message directly to the specified OUT port destinations.

static void DtForwarderNode::setCreatorFunction ( DtForwarderNodeCreatorFcn  creator)
static

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

virtual void DtForwarderNode::setMetadataControl ( DtMetadataType  type,
bool  onOff 
)
virtual

Set/Get metadata control indicators.

virtual int DtForwarderNode::tick ( double  maxTime = 0.0f)
virtual

Forward pending inbound messages.

  • maxTime allows the caller to specify a time-out after which tick will return even if msgs are still pending
  • default: 0.0f implies process msgs until there are NO more pending
virtual void DtForwarderNode::unregisterLanPortProcessor ( DtForwarderMessageProcessor::Filter processor)
virtual
virtual void DtForwarderNode::unregisterOutPortProcessor ( DtForwarderMessageProcessor::Filter processor)
virtual
void DtForwarderNode::writeMessageToPipe ( const MAKRti::DtString &  msg)
protected

Write message to rtiexec pipe.

Member Data Documentation

bool DtForwarderNode::myAddMcastMetadata
protected
bool DtForwarderNode::myAddTcpDestinationListMetadata
protected

Metadata control indicators.

bool DtForwarderNode::myAddTransportTypeMetadata
protected
bool DtForwarderNode::myAddUdpDestinationListMetadata
protected
DtClock DtForwarderNode::myClock
protected

A clock used for basic timing.

DtForwarderFaultProcessor* DtForwarderNode::myFaultProcessor
protected

Fault handler.

bool DtForwarderNode::myIsReady
protected

Is the Forwarder in a "Good" state and ready to forward?

Referenced by ready().

DtInetAddrAndPort DtForwarderNode::myLocalNodeAddress
protected

IP address and port of the local node.

DtForwarderPort* DtForwarderNode::myLocalPort
protected

LAN Port - bidirectional message path to/from local message sources/sinks Keep this variable after myRoutes in the class declaration!!

Referenced by lanPort().

const DtRIDParameters* DtForwarderNode::myParams
protected

RID file configuration.

Referenced by params().

DtInOutForwarderPort* DtForwarderNode::myRemoteInOutPort
protected

In/Out port used by default for both in and out.

DtForwarderPort* DtForwarderNode::myRemoteInputPort
protected

IN Port - incoming message path from other DtForwarderNodes.

Referenced by inPort().

DtForwarderPort* DtForwarderNode::myRemoteOutputPort
protected

OUT Port - outgoing message path to other DtForwarderNodes.

Referenced by outPort().

DtBoost::shared_ptr<DtRouteMap> DtForwarderNode::myRoutes
protected

Routing file configuration Keep this variable before myLocalPort in the class declaration!!

Referenced by routeMap().

std::list<DtTickCallbackInfo> DtForwarderNode::myTickCallbacks
protected

List of tick callbacks.

DtForwarderMessageProcessor* DtForwarderNode::myToLanMsgProcessor
protected
DtForwarderMessageProcessor* DtForwarderNode::myToOutMsgProcessor
protected

Outgoing message processors allow user defined operations to be performed on messages before sending to specified port.

bool DtForwarderNode::myWriteToPipeWhenReady
protected

Whether the forwarder should write to the pipe once it is ready.

DtForwarderNodeCreatorFcn DtForwarderNode::theCreator
staticprotected
const MAKRti::DtInetAddr DtForwarderNode::theFirstHostInetAddr
staticprotected

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

Document ID: Generated on Thu May 11 15:55:32 EDT 2023 from SVN revision 254743
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)