11 #ifndef DtForwarderPort_H_
12 #define DtForwarderPort_H_
20 #include <vlutil/vlConfig.h>
21 #include <vlutil/vlUtil.h>
22 #include <vlutil/vlSelectParamW.h>
23 #include <vlutil/vlFedTarget.h>
24 #include <vlutil/vlInetAddr.h>
44 const std::shared_ptr<DtRouteMap>,
45 const MAKRti::DtInetAddr&, int,
const MAKRti::DtInetEndpoint& );
64 typedef int (*DtConnectionAddRemoveCb)(
const MAKRti::DtString&,
65 const MAKRti::DtString&,
unsigned int,
const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>&,
void*);
66 typedef int(*DtConnectionReconnectBegunCb)(
const MAKRti::DtString&,
68 typedef int(*DtConnectionReconnectCompleteCb)(
const MAKRti::DtString&,
70 typedef int (*DtConnectionChangeCb)(
const MAKRti::DtString& ,
71 const MAKRti::DtString&,
unsigned int,
unsigned int,
const DtInetAddrAndPort&,
void*);
72 typedef void (*DtFederateAddedCb)(
const MAKRti::DtString&,
73 const MAKRti::DtString&,
const MAKRti::DtString&,
unsigned int,
75 unsigned int,
const MAKRti::DtString&,
const MAKRti::DtString&,
77 typedef void (*DtFederateRemovedCb)(
const MAKRti::DtString&,
78 const MAKRti::DtString&,
unsigned int,
unsigned int,
80 typedef void (*DtPortReadyCb)(
unsigned long,
void*);
81 typedef int (*DtExecAddChangeCb)(
const MAKRti::DtString&,
unsigned int,
83 typedef int (*DtExecRemovedChangeCb)(
const MAKRti::DtString&,
unsigned int,
85 typedef int(*DtFederationShadowAddChangeCb)(
unsigned int,
unsigned int,
const MAKRti::DtString&,
void*);
86 typedef int(*DtFederationShadowRemovedChangeCb)(
unsigned int,
unsigned int,
const MAKRti::DtString&,
void*);
87 typedef int (*DtSocketQueueCb)(
unsigned int, int,
void*);
90 typedef void (*DtNotWaitingForFwsCb)(
void*);
108 MAKRti::DtInetAddr host,
int forwarderPort, MAKRti::DtInetEndpoint addnlConnection ) :
109 myParams( params ), myRoutes( routes ), myAddress( host ), myOk( true ),
110 myPortToUse(forwarderPort), myAdditionalAddrToConnectTo(addnlConnection)
117 virtual bool isOk()
const {
return myOk; }
120 virtual bool isReady()
const = 0;
123 virtual DtAddressMsgPair getNextMsg() = 0;
126 virtual void sendByTransport(
const DtForwarderMsg& msg )
const = 0;
129 virtual void sendToAllReliable(
const DtForwarderMsg& msg )
const = 0;
133 virtual void sendToListReliable(
const DtForwarderMsg& msg,
137 virtual inline bool flush();
140 virtual void selectParams( MAKRti::DtSelectParamWithWrite& selectParams ) = 0;
143 virtual void updateRoutes() = 0;
150 virtual void clearNeededConnections() = 0;
153 virtual unsigned int abortPendingConnections() = 0;
156 virtual unsigned int pendingConnectionsAborted() = 0;
159 virtual DtAddressPortList connections()
const = 0;
163 virtual void listenToMulticastGroup(
const MAKRti::DtInetAddr& mcastAddr ) = 0;
164 virtual void dropMulticastGroup(
const MAKRti::DtInetAddr& mcastAddr ) = 0;
168 virtual bool updateFederateConnectionId(
unsigned long orig,
169 unsigned long final ) = 0;
173 virtual inline void addConnectionEstablishedCb( DtConnectionAddRemoveCb callback,
void* usr );
174 virtual inline void removeConnectionEstablishedCb( DtConnectionAddRemoveCb callback,
void* usr );
175 virtual inline void addConnectionLostCb( DtConnectionAddRemoveCb callback,
void* usr );
176 virtual inline void removeConnectionLostCb( DtConnectionAddRemoveCb callback,
void* usr );
177 virtual inline void addConnectionChangedCb( DtConnectionChangeCb callback,
void* usr );
178 virtual inline void removeConnectionChangedCb( DtConnectionChangeCb callback,
void* usr );
180 virtual inline void addReconnectBegun(DtConnectionReconnectBegunCb callback,
void* usr);
181 virtual inline void removeReconnectBegun(DtConnectionReconnectBegunCb callback,
void* usr);
182 virtual inline void addReconnectComplete(DtConnectionReconnectCompleteCb callback,
void* usr);
183 virtual inline void removeReconnectComplete(DtConnectionReconnectCompleteCb callback,
void* usr);
188 virtual inline void addForwarderPortReadyCb( DtPortReadyCb callback,
void* usr );
189 virtual inline void removeForwarderPortReadyCb( DtPortReadyCb callback,
void* usr );
194 virtual inline void addFederateJoinedCb( DtFederateAddedCb callback,
void* usr );
195 virtual inline void removeFederateJoinedCb( DtFederateAddedCb callback,
void* usr );
196 virtual inline void addFederateResignedCb( DtFederateRemovedCb callback,
void* usr );
197 virtual inline void removeFederateResignedCb( DtFederateRemovedCb callback,
void* usr );
202 virtual inline void addSocketQueueCb( DtSocketQueueCb callback,
void* usr );
203 virtual inline void removeSocketQueueCb( DtSocketQueueCb callback,
void* usr );
209 virtual inline void addWaitingForForwarderConnectionsCb(DtWaitingForFwsCb callback,
void* usr);
210 virtual inline void removeWaitingForForwarderConnectionsCb(DtWaitingForFwsCb callback,
void* usr);
211 virtual inline void addNotWaitingForForwarderConnectionsCb(DtNotWaitingForFwsCb callback,
void* usr);
212 virtual inline void removeNotWaitingForForwarderConnectionsCb(DtNotWaitingForFwsCb callback,
void* usr);
217 virtual inline void addExecConnectionEstablishedCb(DtExecAddChangeCb callback,
void* usr);
218 virtual inline void removeExecConnectionEstablishedCb(DtExecAddChangeCb callback,
void * usr);
219 virtual inline void addExecDisconnectedCb(DtExecRemovedChangeCb callback,
void* usr);
220 virtual inline void removeExecDisconnectedCb(DtExecRemovedChangeCb callback,
void* usr);
227 virtual void setForwarderId(
unsigned long id);
232 virtual int execConnected(
const MAKRti::DtString& connName,
233 unsigned int connID,
const DtInetAddrAndPort& addr,
const MAKRti::DtString& hostName,
234 bool fullyCompliant);
235 virtual int execDisconnected(
const MAKRti::DtString& connName,
240 static inline void printAddressMessage(
const DtAddressMsgPair& addrMsg, MAKRti::DtOutputStream& outStream=MAKRti::DtVerbose);
241 static inline void printForwarderMessage(
const DtForwarderMsg& frwdrMsg, MAKRti::DtOutputStream& outStream = MAKRti::DtVerbose);
242 static inline void printMessage(
const caddr_t msg, MAKRti::DtOutputStream& outStream = MAKRti::DtVerbose);
249 virtual inline int connectionEstablished(
const MAKRti::DtString& connName,
250 const MAKRti::DtString& hostName,
unsigned int connID,
const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr);
251 virtual inline int connectionLost(
const MAKRti::DtString& connName,
252 const MAKRti::DtString& hostName,
unsigned int connID,
const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr);
253 virtual inline int connectionChanged(
const MAKRti::DtString& connName,
254 const MAKRti::DtString& hostName,
unsigned int oldConnID,
unsigned int newConnID,
const DtInetAddrAndPort& addr );
255 inline int reconnectBegun(
const MAKRti::DtString& connName,
256 const MAKRti::DtString& hostName,
unsigned int connID,
const DtInetAddrAndPort& addr);
257 inline int reconnectComplete(
const MAKRti::DtString& connName,
258 const MAKRti::DtString& hostName,
unsigned int connID,
const DtInetAddrAndPort& addr,
bool wasSuccessful);
263 virtual void forwarderNodeIsReady(
unsigned long id);
267 virtual int socketQueueStatus(
unsigned int connId,
int connQueueStatus );
273 virtual void waitingForForwarderConnections(
const DtConnAndNameMap& allNeededFws,
274 const DtConnAndNameMap& stillNeededFws);
278 virtual void notWaitingForForwarderConnections();
283 virtual void federateResigned(
const MAKRti::DtString& connName,
284 const MAKRti::DtString& connType,
unsigned int connID,
286 virtual void federateJoined(
const MAKRti::DtString& connName,
287 const MAKRti::DtString& connType,
288 const MAKRti::DtString& federationName,
unsigned int connID,
290 const MAKRti::DtString& hostName,
unsigned int processId,
291 const MAKRti::DtString& processName,
299 static int connectionEstablished(
const MAKRti::DtString& connName,
300 const MAKRti::DtString& hostName,
unsigned int connID,
const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr,
void* usr);
301 static int connectionLost(
const MAKRti::DtString& connName,
302 const MAKRti::DtString& hostName,
unsigned int connID,
const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr,
void* usr);
303 static int connectionChanged(
const MAKRti::DtString& connName,
304 const MAKRti::DtString& hostName,
unsigned int oldConnID,
unsigned int newConnID,
310 static void federateJoined(
const MAKRti::DtString& connName,
311 const MAKRti::DtString& connType,
312 const MAKRti::DtString& federationName,
unsigned int connID,
314 const MAKRti::DtString& hostName,
unsigned int processId,
315 const MAKRti::DtString& processName,
const MAKRti::DtString& commandArgs,
317 static void federateResigned(
const MAKRti::DtString& connName,
318 const MAKRti::DtString& connType,
unsigned int connID,
324 static int execConnected(
const MAKRti::DtString& connName,
326 const MAKRti::DtString& hostName,
bool fullyCompliant,
void* usr);
327 static int execDisconnected(
const MAKRti::DtString& connName,
332 static int socketQueueStatus(
unsigned int connId,
int connQueueStatus,
336 static void forwarderNodeIsReady(
unsigned long id,
void* usr);
378 std::pair<DtConnectionAddRemoveCb, void*> cbPair( callback, usr );
396 const MAKRti::DtString& hostName,
unsigned int connID,
const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr)
402 if (-1 == ( *iter->first )( connName, hostName, connID, addr, iter->second ))
413 std::pair<DtConnectionAddRemoveCb, void*> cbPair( callback, usr );
430 const MAKRti::DtString& hostName,
unsigned int connID,
const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr)
436 if ( -1 == ( *iter->first )( connName, hostName, connID, addr, iter->second ) )
444 const MAKRti::DtString& hostName,
unsigned int connID,
const DtInetAddrAndPort& addr)
450 if (-1 == (*iter->first)(connName, hostName, connID, addr, iter->second))
458 const MAKRti::DtString& hostName,
unsigned int connID,
const DtInetAddrAndPort& addr,
bool wasSuccessful)
464 if (-1 == (*iter->first)(connName, hostName, connID, addr, wasSuccessful, iter->second))
474 std::pair<DtConnectionChangeCb, void*> cbPair( callback, usr );
493 std::pair<DtConnectionReconnectBegunCb, void*> cbPair(callback, usr);
494 DtConnectionReconnectBegunCallbackList::iterator pos = std::find(
myReconnectBegunCbs.begin(),
503 DtConnectionReconnectBegunCallbackList::iterator pos = std::find(
myReconnectBegunCbs.begin(),
510 std::pair<DtConnectionReconnectCompleteCb, void*> cbPair(callback, usr);
526 const MAKRti::DtString& hostName,
unsigned int oldConnID,
unsigned int newConnID,
533 if (-1 == ( *iter->first )( connName, hostName, oldConnID, newConnID, addr, iter->second ))
544 std::pair<DtFederateRemovedCb, void*> cbPair( callback, usr );
563 std::pair< DtSocketQueueCb, void* > cbPair( callback, usr );
565 DtSocketQueueCallbackList::iterator pos = std::find(
mySocketQueueCbs.begin(),
574 DtSocketQueueCallbackList::iterator pos = std::find(
mySocketQueueCbs.begin(),
587 ( *iter->first )( connName, connType, connID, fedHandle, addr, iter->second );
594 ((
DtForwarderPort*)usr)->federateResigned(connName, connType, connID, fedHandle, addr);
600 std::pair<DtPortReadyCb, void*> cbPair( callback, usr );
601 DtPortReadyCallbackList::iterator pos = std::find(
myPortReadyCbs.begin(),
611 DtPortReadyCallbackList::iterator pos = std::find(
myPortReadyCbs.begin(),
619 return (static_cast<DtForwarderPort*>(usr))->forwarderNodeIsReady(
id);
624 for ( DtPortReadyCallbackList::iterator iter =
myPortReadyCbs.begin();
627 ( *iter->first )(
id, iter->second);
636 std::pair<DtFederateAddedCb, void*> cbPair( callback, usr );
653 const MAKRti::DtString& connType,
654 const MAKRti::DtString& federationName,
656 unsigned int fedHandle,
658 const MAKRti::DtString& hostName,
659 unsigned int processId,
660 const MAKRti::DtString& processName,
661 const MAKRti::DtString& commandArgs,
667 ( *iter->first )( connName, connType, federationName, connID, fedHandle,
668 addr, hostName, processId, processName, commandArgs, hlaVersion,
674 const MAKRti::DtString& connType,
675 const MAKRti::DtString& federationName,
677 unsigned int fedHandle,
679 const MAKRti::DtString& hostName,
680 unsigned int processId,
681 const MAKRti::DtString& processName,
682 const MAKRti::DtString& commandArgs,
686 ((
DtForwarderPort*)usr)->federateJoined(connName, connType, federationName,
687 connID, fedHandle, addr, hostName, processId, processName, commandArgs,
693 const MAKRti::DtString& hostName,
695 const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr,
698 return ((
DtForwarderPort*)usr)->connectionEstablished(connName, hostName, connID, addr);
702 const MAKRti::DtString& hostName,
704 const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& addr,
707 return ((
DtForwarderPort*)usr)->connectionLost(connName, hostName, connID, addr);
711 const MAKRti::DtString& hostName,
unsigned int oldConnID,
unsigned int newConnID,
715 return ((
DtForwarderPort*)usr)->connectionChanged(connName, hostName, oldConnID, newConnID, addr);
721 std::pair<DtExecAddChangeCb, void*> cbPair( callback, usr );
743 const MAKRti::DtString& hostName,
744 bool fullyCompliant,
void* usr)
746 return ((
DtForwarderPort*)usr)->execConnected(connName, connID, addr, hostName, fullyCompliant);
752 const MAKRti::DtString& hostName,
753 bool fullyCompliant )
759 if ( -1 == ( *iter->first )( connName, connID, addr, hostName, fullyCompliant, iter->second ) )
771 std::pair<DtExecRemovedChangeCb, void*> cbPair( callback, usr );
793 return ((
DtForwarderPort*)usr)->execDisconnected(connName, connID, addr);
803 if ( -1 == ( *iter->first )( connName, connID, addr, iter->second ) )
812 MAKRti::DtOutputStream& outStream)
814 outStream <<
"Sender: " << addrMsg.first.first.toDtString() <<
":" << addrMsg.first.second <<
" ";
819 MAKRti::DtOutputStream& outStream)
821 outStream <<
"Size: " << frwdrMsg.
length <<
" Transport: " << (frwdrMsg.
transport ?
"Reliable " :
"Best Effort ") <<
" ";
839 std::pair< DtWaitingForFwsCb, void* > cbPair( callback, usr );
867 ( *iter->first )( allNeededFws, stillNeededFws, iter->second );
874 std::pair< DtNotWaitingForFwsCb, void* > cbPair( callback, usr );
901 ( *iter->first )( iter->second );
907 return ((
DtForwarderPort*)usr)->socketQueueStatus( connId, connQueueStatus );
917 if( -1 == ( *iter->first )( connId, connQueueStatus, iter->second ) )
DtRouteMap::DtInterfaceAddrSet DtInterfaceAddrSet
Definition: forwarderPort.h:56
std::set< DtTcpMsgSocket * > DtSocketSet
Definition: forwarderPort.h:58
std::vector< std::pair< DtConnectionChangeCb, void * > > DtConnectionChangeCallbackList
Definition: forwarderPort.h:94
virtual unsigned long sequenceNumber() const
Set/Get message sequence number.
std::pair< MAKRti::DtInetAddr, int > DtInetAddrAndPort
Definition: rtiUtil.h:148
DtRouteMap::DtAddressList DtAddressList
Definition: forwarderPort.h:55
std::shared_ptr< DtRouteMap > myRoutes
Definition: forwarderPort.h:341
virtual void addSocketQueueCb(DtSocketQueueCb callback, void *usr)
Register/Unregister callback for event - socket queue status changes.
Definition: forwarderPort.h:560
DtExecAddedCallbackList myExecConnectedCbs
Definition: forwarderPort.h:356
virtual void removeConnectionChangedCb(DtConnectionChangeCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:483
virtual void setForwarderId(unsigned long id)
Set forwarder ID.
Definition: forwarderPort.h:369
virtual int connectionChanged(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int oldConnID, unsigned int newConnID, const DtInetAddrAndPort &addr)
Call when connection is added/removed/changed Invokes callbacks registered for this event...
Definition: forwarderPort.h:525
std::vector< std::pair< DtExecAddChangeCb, void * > > DtExecAddedCallbackList
Definition: forwarderPort.h:98
std::pair< DtTcpMsgSocket *, DtForwarderMsg > DtSockMsgPair
Definition: forwarderPort.h:60
std::vector< std::pair< DtFederateRemovedCb, void * > > DtFederateRemovedCallbackList
Definition: forwarderPort.h:96
DtConnectionReconnectCompleteCallbackList myReconnectCompleteCbs
Definition: forwarderPort.h:351
bool myOk
Definition: forwarderPort.h:343
The DtForwarderPort is an Abstract Base Class which provides the interface to a collection of connect...
Definition: forwarderPort.h:38
virtual void notWaitingForForwarderConnections()
Called when exiting from the waiting for forwarder connections state.
Definition: forwarderPort.h:896
This class manages the RTI's start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
std::vector< std::pair< DtWaitingForFwsCb, void * > > DtWaitingForFwsCallbackList
Definition: forwarderPort.h:103
virtual void federateJoined(const MAKRti::DtString &connName, const MAKRti::DtString &connType, const MAKRti::DtString &federationName, unsigned int connID, unsigned int fedHandle, const DtInetAddrAndPort &addr, const MAKRti::DtString &hostName, unsigned int processId, const MAKRti::DtString &processName, const MAKRti::DtString &commandArgs, DtHlaVersionId hlaVersion)
Called when the federate joins/resigns.
Definition: forwarderPort.h:652
const DtRIDParameters * myParams
Definition: forwarderPort.h:340
MAKRti::DtTransportType transport
Definition: forwarderPort.h:51
virtual void removeForwarderPortReadyCb(DtPortReadyCb callback, void *usr)
Register/Unregister callback for event - forwarder port becomes ready.
Definition: forwarderPort.h:609
virtual void removeConnectionLostCb(DtConnectionAddRemoveCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:422
DtConnectionChangeCallbackList myConnectionChangedCbs
Definition: forwarderPort.h:352
virtual void addForwarderPortReadyCb(DtPortReadyCb callback, void *usr)
Register/Unregister callback for event - forwarder port becomes ready.
Definition: forwarderPort.h:597
int reconnectComplete(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const DtInetAddrAndPort &addr, bool wasSuccessful)
Call when connection is added/removed/changed Invokes callbacks registered for this event...
Definition: forwarderPort.h:457
virtual void removeSocketQueueCb(DtSocketQueueCb callback, void *usr)
Register/Unregister callback for event - socket queue status changes.
Definition: forwarderPort.h:572
DtHlaVersionId
Definition: rtiVersion.h:50
virtual void addWaitingForForwarderConnectionsCb(DtWaitingForFwsCb callback, void *usr)
Register/Unregister callback for event - entrance/exit the "waiting for forwarder connections" state...
Definition: forwarderPort.h:836
static void printAddressMessage(const DtAddressMsgPair &addrMsg, MAKRti::DtOutputStream &outStream=MAKRti::DtVerbose)
Definition: forwarderPort.h:811
virtual void removeFederateJoinedCb(DtFederateAddedCb callback, void *usr)
Register/Unregister callback for event - federate join/resign.
Definition: forwarderPort.h:645
virtual void removeExecConnectionEstablishedCb(DtExecAddChangeCb callback, void *usr)
Register/Unregister callback for event - exec connected/disconnected.
Definition: forwarderPort.h:730
std::vector< std::pair< DtExecRemovedChangeCb, void * > > DtExecRemovedCallbackList
Definition: forwarderPort.h:99
virtual void addConnectionLostCb(DtConnectionAddRemoveCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:410
int myPortToUse
Definition: forwarderPort.h:345
const MAKRti::DtInetAddr myAddress
Definition: forwarderPort.h:342
virtual bool isOk() const
Is the Port still alive?
Definition: forwarderPort.h:117
Definition: forwarderPort.h:47
std::vector< std::pair< DtPortReadyCb, void * > > DtPortReadyCallbackList
Definition: forwarderPort.h:97
virtual void removeExecDisconnectedCb(DtExecRemovedChangeCb callback, void *usr)
Register/Unregister callback for event - exec connected/disconnected.
Definition: forwarderPort.h:780
std::vector< std::pair< DtFederationShadowRemovedChangeCb, void * > > DtFederationShadowRemovedCallbackList
Definition: forwarderPort.h:101
virtual void addReconnectComplete(DtConnectionReconnectCompleteCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:507
std::vector< std::pair< DtFederationShadowAddChangeCb, void * > > DtFederationShadowAddedCallbackList
Definition: forwarderPort.h:100
std::map< DtInetAddrAndPort, MAKRti::DtString > DtConnAndNameMap
Definition: forwarderPort.h:62
virtual int socketQueueStatus(unsigned int connId, int connQueueStatus)
Called when the socket queue status changes.
Definition: forwarderPort.h:910
static unsigned long metadataSize(const void *buffer)
Extracts the message metadata size form the given buffer.
DtConnectionReconnectBegunCallbackList myReconnectBegunCbs
Definition: forwarderPort.h:350
DtSocketQueueCallbackList mySocketQueueCbs
Definition: forwarderPort.h:358
std::pair< DtInetAddrAndPort, DtForwarderMsg > DtAddressMsgPair
Definition: forwarderPort.h:59
virtual int connectionLost(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &addr)
Call when connection is added/removed/changed Invokes callbacks registered for this event...
Definition: forwarderPort.h:429
virtual void removeReconnectBegun(DtConnectionReconnectBegunCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:501
std::vector< std::pair< DtSocketQueueCb, void * > > DtSocketQueueCallbackList
Definition: forwarderPort.h:102
DtRouteMap::DtAddressPortList DtAddressPortList
Definition: forwarderPort.h:54
std::vector< std::pair< DtConnectionReconnectBegunCb, void * > > DtConnectionReconnectBegunCallbackList
Definition: forwarderPort.h:92
virtual int connectionEstablished(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &addr)
Call when connection is added/removed/changed Invokes callbacks registered for this event...
Definition: forwarderPort.h:395
virtual void waitingForForwarderConnections(const DtConnAndNameMap &allNeededFws, const DtConnAndNameMap &stillNeededFws)
Specifies that this port is waiting for other forwarder connections.
Definition: forwarderPort.h:861
MAKRti::DtInetEndpoint myAdditionalAddrToConnectTo
Definition: forwarderPort.h:346
std::vector< MAKRti::DtInetAddr > DtAddressList
Definition: routeMap.h:60
Definition: routeMap.h:41
The DtTcpMsgSocket class provides an address family independent TCP socket that handles RTI messages...
Definition: tcpMsgSocket.h:40
virtual void removeFederateResignedCb(DtFederateRemovedCb callback, void *usr)
Register/Unregister callback for event - federate join/resign.
Definition: forwarderPort.h:553
virtual DtRtiMsgKind msgKind() const
Get the message kind.
Definition: rtiMsg.h:305
std::vector< DtTcpMsgSocket * > DtSocketList
Definition: forwarderPort.h:57
static void printForwarderMessage(const DtForwarderMsg &frwdrMsg, MAKRti::DtOutputStream &outStream=MAKRti::DtVerbose)
Definition: forwarderPort.h:818
virtual void removeWaitingForForwarderConnectionsCb(DtWaitingForFwsCb callback, void *usr)
Register/Unregister callback for event - entrance/exit the "waiting for forwarder connections" state...
Definition: forwarderPort.h:850
virtual int execDisconnected(const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &addr)
Called when the exec connects/disconnects.
Definition: forwarderPort.h:796
DtConnectionAddRemoveCallbackList myConnectionLostCbs
Definition: forwarderPort.h:349
virtual void removeReconnectComplete(DtConnectionReconnectCompleteCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:518
virtual void addExecDisconnectedCb(DtExecRemovedChangeCb callback, void *usr)
Register/Unregister callback for event - exec connected/disconnected.
Definition: forwarderPort.h:768
DtExecRemovedCallbackList myExecDisconnectedCbs
Definition: forwarderPort.h:357
int length
Definition: forwarderPort.h:50
static void printMessage(const caddr_t msg, MAKRti::DtOutputStream &outStream=MAKRti::DtVerbose)
Definition: forwarderPort.h:825
DtPortReadyCallbackList myPortReadyCbs
Definition: forwarderPort.h:355
virtual ~DtForwarderPort()
Definition: forwarderPort.h:114
std::vector< std::pair< DtConnectionAddRemoveCb, void * > > DtConnectionAddRemoveCallbackList
Definition: forwarderPort.h:91
caddr_t msg
Definition: forwarderPort.h:49
std::vector< std::pair< DtFederateAddedCb, void * > > DtFederateAddedCallbackList
Definition: forwarderPort.h:95
virtual int execConnected(const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &addr, const MAKRti::DtString &hostName, bool fullyCompliant)
Called when the exec connects/disconnects.
Definition: forwarderPort.h:749
virtual void forwarderNodeIsReady(unsigned long id)
Called when the forwarder port is known and node becomes ready.
Definition: forwarderPort.h:622
DtConnectionAddRemoveCallbackList myConnectionEstablishedCbs
Definition: forwarderPort.h:348
virtual void addFederateResignedCb(DtFederateRemovedCb callback, void *usr)
Register/Unregister callback for event - federate join/resign.
Definition: forwarderPort.h:541
virtual void addNotWaitingForForwarderConnectionsCb(DtNotWaitingForFwsCb callback, void *usr)
Register/Unregister callback for event - entrance/exit the "waiting for forwarder connections" state...
Definition: forwarderPort.h:871
virtual void addConnectionEstablishedCb(DtConnectionAddRemoveCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:375
virtual void addConnectionChangedCb(DtConnectionChangeCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:471
std::set< MAKRti::DtInetAddr > DtInterfaceAddrSet
Definition: routeMap.h:62
DtForwarderPort(const DtRIDParameters *params, std::shared_ptr< DtRouteMap > routes, MAKRti::DtInetAddr host, int forwarderPort, MAKRti::DtInetEndpoint addnlConnection)
Definition: forwarderPort.h:107
DtWaitingForFwsCallbackList myWaitingForFwsCbs
Definition: forwarderPort.h:359
virtual const char * kindString() const
Returns the message kind string name.
DtNotWaitingForFwsCallbackList myNotWaitingForFwsCbs
Definition: forwarderPort.h:360
std::map< DtInetAddrAndPort, DtTcpMsgSocket * > DtAddrToConnMap
Definition: forwarderPort.h:61
virtual void addExecConnectionEstablishedCb(DtExecAddChangeCb callback, void *usr)
Register/Unregister callback for event - exec connected/disconnected.
Definition: forwarderPort.h:718
virtual void removeConnectionEstablishedCb(DtConnectionAddRemoveCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:387
virtual void removeNotWaitingForForwarderConnectionsCb(DtNotWaitingForFwsCb callback, void *usr)
Register/Unregister callback for event - entrance/exit the "waiting for forwarder connections" state...
Definition: forwarderPort.h:885
#define DT_DLL_FORWARDER
Definition: rtiMsConfig.h:153
DtFederateAddedCallbackList myFederateJoinedCbs
Definition: forwarderPort.h:353
virtual void addFederateJoinedCb(DtFederateAddedCb callback, void *usr)
Register/Unregister callback for event - federate join/resign.
Definition: forwarderPort.h:633
std::vector< std::pair< DtNotWaitingForFwsCb, void * > > DtNotWaitingForFwsCallbackList
Definition: forwarderPort.h:104
static unsigned char flags(const void *buffer)
Extracts the message flags form the given buffer.
int reconnectBegun(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const DtInetAddrAndPort &addr)
Call when connection is added/removed/changed Invokes callbacks registered for this event...
Definition: forwarderPort.h:443
virtual bool flush()
Flush any unsent/buffered packets; return true if flush sent data.
Definition: forwarderPort.h:363
virtual void federateResigned(const MAKRti::DtString &connName, const MAKRti::DtString &connType, unsigned int connID, unsigned int fedHandle, const DtInetAddrAndPort &addr)
Called when the federate joins/resigns.
Definition: forwarderPort.h:581
DtFederateRemovedCallbackList myFederateResignedCbs
Definition: forwarderPort.h:354
std::vector< DtInetAddrAndPort > DtAddressPortList
Definition: routeMap.h:59
virtual int fedExHandle() const
Get the federation execution identifier as a handle Returns 0 if the identifier is being represented ...
std::vector< std::pair< DtConnectionReconnectCompleteCb, void * > > DtConnectionReconnectCompleteCallbackList
Definition: forwarderPort.h:93
virtual void addReconnectBegun(DtConnectionReconnectBegunCb callback, void *usr)
Register/Unregister callback for addition/removal/change of connections.
Definition: forwarderPort.h:490
virtual DtFederateHandle federateHandle() const
Set/Get federate handle.
Definition: rtiMsg.h:315