8 #ifndef DtRtiMsgForwarder_H_
9 #define DtRtiMsgForwarder_H_
19 #include <vlutil/vlRunnable.h>
20 #include <vlutil/vlThreadSafe.h>
23 #include <vlutil/vlSelectParamW.h>
24 #include <vlutil/vlSmartPointers.h>
25 #include <vlutil/vlInetAddr.h>
43 class DtMsgFwdrFunctor;
69 const MAKRti::DtInetAddr& ipAddr,
int port,
70 unsigned long federateHandle = 0,
71 const MAKRti::DtString& federateName =
"",
72 const MAKRti::DtString& federateType =
"",
73 const MAKRti::DtString& fedexName =
"",
77 bool operator==(
const ConnectionInfo& rhs );
78 bool operator<(
const ConnectionInfo& rhs );
81 void setFederateInfo(
unsigned long fedexHandle,
unsigned long handle,
82 const MAKRti::DtString& name,
const MAKRti::DtString& type,
84 void setConnectionId(
unsigned long connId );
119 virtual bool hasExec()
const;
129 virtual void setEnableBundling(
unsigned int maxBundleSize );
132 virtual void setUseSmartForwarding(
bool yesNo );
135 virtual void setUseInternalSmartForwarding(
bool yesNo );
138 virtual void setRouteFedexMessages(
bool yesNo );
147 virtual inline unsigned long forwarderId()
const;
150 virtual void setForwarderId(
unsigned long newId);
153 void updateTcpForwarderQueuedSockets();
164 virtual ConnectionInfoSP getConnectionInfoByConnId(
unsigned long connId )
const;
167 virtual ConnectionInfoSP getConnectionInfoByHandle(
unsigned long federateHandle )
const;
173 virtual std::pair< bool, unsigned long > rtiExecConnected()
const;
181 virtual void requestCloseAllConnections();
188 virtual void requestKillSingleConnection(
const DtTcpMsgSocket* sock );
194 virtual void markConnectionAsAboutToBeDeleted(
DtTcpMsgSocket const* socket,
unsigned int connectionId);
197 virtual bool isConnectionMarkedForDeletion(
unsigned int connectionId)
const;
202 virtual void removeOldConnection(
unsigned int connectionId);
206 virtual void shutdownRequestedByExec();
211 virtual bool updateFederateConnectionId(
unsigned long orig,
unsigned long final );
214 virtual void updateConnectionProcessParameters(
unsigned long connId,
unsigned long processId, MAKRti::DtString processName, MAKRti::DtString commandArgs );
217 virtual bool shouldStop();
235 virtual void performMcastDiscovery();
239 virtual void applyRegisteredFilters();
240 virtual void disableRegisteredFilters();
244 virtual void waitForIo();
251 virtual unsigned long consumeConnId();
261 virtual bool populateConnectionInformation(
262 unsigned int& numForwarderToForwarderConns,
263 std::vector<MAKRti::DtString>& forwarderIdentifiers,
264 std::vector<MAKRti::DtString>& forwarderConnectionHostNames,
265 std::vector<MAKRti::DtInetAddr>& forwarderConnectionAddrs,
266 unsigned int& numForwarderClientConns,
267 std::vector<MAKRti::DtString>& clientConnectionHostNames,
268 std::vector<MAKRti::DtInetAddr>& clientConnectionAddrs)
const;
271 virtual void closeAllConnectionsIfRequested();