11 #ifndef DtForwarderNode_H_
12 #define DtForwarderNode_H_
18 #include <vlutil/vlConfig.h>
19 #include <vlutil/vlUtil.h>
20 #include <vlutil/vlTime.h>
53 #define DtForwarderIntfcIn 0x01
54 #define DtForwarderIntfcOut 0x02
55 #define DtForwarderIntfcLan 0x04
113 const MAKRti::DtInetAddr& forwarderAddrToConnectTo,
114 bool writeToPipeWhenReady );
124 virtual int tick(
double maxTime = 0.0f );
129 virtual void addTickCallback(
DtTickCbFn fn,
void* usr, MAKRti::DtTime interval );
130 virtual void removeTickCallback(
DtTickCbFn fn,
void* usr );
133 virtual inline bool ready()
const;
139 virtual inline DtBoost::shared_ptr<DtRouteMap> routeMap()
const;
147 virtual void selectParams( MAKRti::DtSelectParamWithWrite& selectParams );
150 virtual unsigned long localNodeId()
const;
157 virtual MAKRti::DtString localNodeName()
const;
189 virtual void packageAndSendReliable(
DtRtiMsg& msg,
unsigned int sendViaIntfc );
190 virtual void packageAndSendReliable(
DtRtiMsg& msg,
unsigned int sendViaIntfc,
194 virtual void setMetadataControl(
DtMetadataType type,
bool onOff );
198 virtual void lanPortListenToMulticastGroup(
const MAKRti::DtInetAddr& mcastAddr );
199 virtual void lanPortDropMulticastGroup(
const MAKRti::DtInetAddr& mcastAddr );
203 virtual bool lanPortUpdateFederateConnectionId(
unsigned long orig,
204 unsigned long final );
210 virtual DtInetAddrAndPort nextForwarderOnRoute(
const MAKRti::DtString& targetGroupName );
220 virtual void abortPendingConnections();
223 virtual unsigned int abortedConnections();
226 virtual bool connectionInformation(
227 unsigned int& numForwarderToForwarderConns,
228 std::vector<MAKRti::DtString>& forwarderIdentifiers,
229 std::vector<MAKRti::DtString>& forwarderConnectionHostNames,
230 std::vector<DtInetAddrAndPort>& forwarderConnectionAddrs,
231 unsigned int& numForwarderExecConns,
232 unsigned int& numForwarderClientConns,
233 std::vector<MAKRti::DtString>& clientConnectionHostNames,
234 std::vector<MAKRti::DtInetAddr>& clientConnectionAddrs);
239 void continueWithoutUnconnectedFws();
248 MAKRti::DtInetAddr forwarderAddrToConnectTo,
249 bool writeToPipeWhenReady );
256 MAKRti::DtInetAddr forwarderAddrToConnectTo,
257 bool writeToPipeWhenReady );
262 static void setCreatorFunction( DtForwarderNodeCreatorFcn creator );
265 static int newInPortConnection(
const MAKRti::DtString& connName,
unsigned int connID,
267 static int newOutPortConnection(
const MAKRti::DtString& connName,
unsigned int connID,
269 static int lostInPortConnection(
const MAKRti::DtString& connName,
unsigned int connID,
271 static int lostOutPortConnection(
const MAKRti::DtString& connName,
unsigned int connID,
273 static void inOutForwarderPortReady(
unsigned long forwarderNodeId,
void* usr);
285 int refreshConnections();
288 void writeMessageToPipe(
const MAKRti::DtString& msg );
291 int newInPortConnection(
const MAKRti::DtString& connName,
293 int newOutPortConnection(
const MAKRti::DtString& connName,
295 int lostInPortConnection(
const MAKRti::DtString& connName,
297 int lostOutPortConnection(
const MAKRti::DtString& connName,
299 void inOutForwarderPortReady(
unsigned long forwarderNodeId);
392 return (
outPort()->pendingConnectionsAborted() +
lanPort()->pendingConnectionsAborted());