17 #include <vlutil/vlFedTarget.h>
18 #include <vlutil/vlMutex.h>
19 #include <vlutil/vlStringUtil.h>
43 class FederateAmbassador;
63 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
69 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient =
70 DtBoost::shared_ptr<DtRtiAssistantLrcClient>());
97 virtual void enableSmartForwarding(
bool enableSmartForwarding,
bool enableInternalMessageSmartForwarding,
int maxNumFederates);
106 virtual void shutdown();
109 virtual bool isShuttingDown();
120 virtual int send(
const DtRtiMsg& msg,
121 MAKRti::DtTransportType transport,
122 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny());
126 virtual int sendStamped(
const DtRtiMsg& msg,
127 MAKRti::DtTransportType transport,
128 const MAKRti::DtInetAddr& = MAKRti::DtInetAddr::inaddrAny());
132 virtual int sendStampedAnonymous(
const DtRtiMsg& msg,
133 MAKRti::DtTransportType transport,
134 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny());
138 virtual int sendAndDelete(
DtRtiMsg* msg,
139 MAKRti::DtTransportType transport,
140 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny());
144 virtual int sendDirectedAndDelete(
DtRtiMsg* msg,
146 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny());
150 virtual int sendStampedAndDelete(
DtRtiMsg* msg,
151 MAKRti::DtTransportType transport,
152 const MAKRti::DtInetAddr& = MAKRti::DtInetAddr::inaddrAny());
158 virtual int sendDirectedStampedAndDelete(
DtRtiMsg* msg,
160 const MAKRti::DtInetAddr& = MAKRti::DtInetAddr::inaddrAny());
161 virtual int sendDirectedStampedAndDelete(
DtRtiMsg* msg,
162 MAKRti::DtTransportType transport,
DtBitMask *sendMask,
163 const MAKRti::DtInetAddr& = MAKRti::DtInetAddr::inaddrAny());
169 virtual int sendStampedAnonymousAndDelete(
DtRtiMsg* msg,
170 MAKRti::DtTransportType transport,
171 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny());
172 virtual int sendDirectedStampedAnonymousAndDelete(
DtRtiMsg* msg,
174 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny());
181 virtual void sendLoopback(
DtRtiMsg* msg);
185 virtual bool flush();
189 virtual bool drainBacklog( MAKRti::DtTime timeout = 0.0 );
194 virtual void activateTransmitDelay();
197 virtual bool delayTransmit()
const;
205 virtual void testTransmitDelay();
210 virtual void activateAutoProvideDelay();
213 virtual bool delayAutoProvide()
const;
216 bool allProvideUpdateRequestsDelayed()
const;
220 virtual void testAutoProvideDelay();
223 virtual void processThrottledMessages();
226 virtual void flushThrottledMessages();
230 virtual unsigned long incrementServiceCallCount();
233 virtual unsigned long serviceCallCount()
const;
237 virtual void setProcessingTick(
bool processingTick);
238 virtual bool processingTick()
const;
243 virtual void setEvokingCallbacks(
bool evokingCbs);
244 virtual bool evokingCallbacks()
const;
253 virtual bool processConnectionsInCallback();
258 MAKRti::DtTransportType trans);
262 virtual bool processConnections();
271 virtual void addPendingMsg(
DtRtiMsg* msg);
272 virtual bool processPendingMsg();
274 virtual void emptyPendingMsgList();
275 virtual int pendingMsgCount();
279 virtual void updateBufferSizes();
301 virtual int readFileDescriptor(rti1516::TransportationType transport);
302 #elif defined(DtIFSPEC1516E)
303 virtual int readFileDescriptor(rti1516e::TransportationType transport);
312 virtual WSAEVENT readFileEvent(rti1516::TransportationType transport);
313 #elif defined(DtIFSPEC1516E)
314 virtual WSAEVENT readFileEvent(rti1516e::TransportationType transport);
325 void *usr,
bool isMomCallback=
false);
327 void *usr,
bool isMomCallback=
false);
329 void *usr,
bool isMomCallback=
false);
331 void *usr,
bool isMomCallback=
false);
351 virtual MAKRti::DtTransportType internalTransportType()
const;
357 virtual bool setupSelectParams(DtSelectParam* params);
360 virtual bool hasTransport(MAKRti::DtTransportType trans);
378 virtual void listenToMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
379 virtual void dropMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
384 virtual void forceDropMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
389 virtual void connectFederation(
391 rti1516::FederateAmbassador* fedAmb,
392 #elif defined(DtIFSPEC13)
393 RTI::FederateAmbassador* fedAmb,
396 MAKRti::DtString fedExName,
402 virtual bool repairFederationConnection();
407 virtual void disconnectFederation();
422 virtual bool lockServiceCall();
426 virtual void unlockServiceCall();
430 virtual bool serviceCallLocked();
435 virtual bool enterServiceCall();
439 virtual void exitServiceCall();
443 virtual bool inServiceCall();
448 virtual rti1516::FederateAmbassador* fedAmb()
const;
449 #elif defined(DtIFSPEC1516E)
452 virtual RTI::FederateAmbassador* fedAmb()
const;
463 virtual void addFedAmbWrapper(MAKRti::DtString
const& name,
DtFedAmbWrapper* fedAmb);
469 virtual bool addFedAmbWrapperAtFront( MAKRti::DtString
const& name,
DtFedAmbWrapper* fedAmb );
472 virtual DtFedAmbWrapper* removeFedAmbWrapper(MAKRti::DtString
const& name);
475 virtual unsigned long connectionId()
const;
481 virtual unsigned long fedExHandle()
const;
484 virtual const MAKRti::DtString& fedExName()
const;
514 virtual bool wait(MAKRti::DtTime periodInSeconds,
bool unlockWhileWaiting =
false);
517 virtual void yield();
522 virtual bool saveInProgress()
const;
523 virtual void setSaveInProgress(
bool saveIsInProgress);
528 virtual bool restoreInProgress()
const;
529 virtual void setRestoreInProgress(
bool saveIsInProgress);
532 virtual bool saveRestoreInProgress()
const;
535 virtual void setMetadataControl(
DtMetadataType type,
bool onOff );
539 virtual void sendShutdownForwarderMsg();
542 virtual unsigned long sequenceNumber()
const;
545 virtual void incrementSequenceNumber();
551 virtual bool doWait(MAKRti::DtTime period);
556 virtual int initConnections();
560 virtual bool createBestEffortConn();
563 virtual void destroyBestEffortConn();
566 virtual bool createRelConn();
569 virtual void destroyRelConn();
573 virtual unsigned int createAncillaryRelConns();
579 virtual void destroyAncillaryRelConns();
582 virtual unsigned int ancillaryReliableConnsCount()
const;
586 virtual bool checkRelConn();
589 virtual void processReadResult(
int readError);
593 virtual int sendStampedUtilityFunction(
DtRtiMsg* msg,
594 MAKRti::DtTransportType transport,
597 const MAKRti::DtInetAddr& addr );
606 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient =
607 DtBoost::shared_ptr<DtRtiAssistantLrcClient>());
611 static void setCreatorFunction(DtConnectionMgrCreator fn);
617 static void setInternalCreatorFunction(DtConnectionMgrCreator fn);
728 WSAEVENT myBestEffortEvent;
731 WSAEVENT myReliableEvent;
780 addr(MAKRti::DtInetAddr::inaddrAny()),
785 MAKRti::DtInetAddr addrVal,
786 MAKRti::DtInetAddr netInterfaceVal,
794 MAKRti::DtInetAddr
addr;