11 #ifndef DtInOutForwarderPort_H_
12 #define DtInOutForwarderPort_H_
18 #include <vlutil/vlTime.h>
24 class DtTcpSocketMgr__vl__;
40 DtBoost::shared_ptr<DtRouteMap> routes,
41 const MAKRti::DtInetAddr& host,
43 const MAKRti::DtInetEndpoint& forwarderAddrToConnectTo );
57 std::list<DtAddressMsgPair>& msgs,
bool printBeDestMetadata);
60 virtual bool getInitializationMsg(
DtMsgSocket* sock,
75 virtual void selectParams( MAKRti::DtSelectParamWithWrite& selectParams );
81 virtual void processInitializationMessages();
115 virtual bool flush();
118 virtual bool flushOnly();
121 virtual DtString connectionListToString(
const char* separator =
" : " )
const;
123 virtual bool populateConnectionInformation(
124 unsigned int& numForwarderToForwarderConns,
125 std::vector<DtString>& forwarderIdentifiers,
126 std::vector<DtString>& forwarderConnectionHostNames,
127 std::vector<DtInetAddrAndPort>& forwarderConnectionAddrs)
const;
130 virtual bool addPeerConnection(
const DtString& host,
131 const MAKRti::DtInetAddr& ipAddress,
int port,
bool distributeConnection);
150 const DtBoost::shared_ptr<DtRouteMap> routes,
151 const MAKRti::DtInetAddr& host,
int forwarderPort,
152 const MAKRti::DtInetEndpoint& additionalForwarderToConnectTo );
157 static void setCreatorFunction( DtForwarderPortCreatorFcn creator );
169 static void socketEstablishedCb(
DtTcpMsgSocket* sock,
void* usr );
180 virtual void initializeConnections();
189 virtual void sendForwarderNodeInfoMsgToConnections();
193 virtual void sendForwarderNodeInfoMsg(
DtTcpMsgSocket* sock,
unsigned long nodeIdToUse=0);
197 const DtString& fwName,
const DtString& fwHostName );
214 virtual void connectionCompleted(
const DtString& nodeName,
const DtString& hostName,
unsigned long nodeId,
230 virtual void removeConnection( DtAddrToConnMap::iterator pos );
240 virtual void becomeRootForwarderNode();
244 const DtString& fwName,
const DtString& fwHostName,
const std::set<DtForwarderNodeInfo>& fwConnPeers);
319 unsigned long final )