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;
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;
256 MAKRti::DtTransportType trans);
260 virtual bool processConnections();
269 virtual void addPendingMsg(
DtRtiMsg* msg);
270 virtual bool processPendingMsg();
272 virtual void emptyPendingMsgList();
273 virtual int pendingMsgCount();
277 virtual void updateBufferSizes();
300 #elif defined(DtIFSPEC1516E)
311 #elif defined(DtIFSPEC1516E)
323 void *usr,
bool isMomCallback=
false);
325 void *usr,
bool isMomCallback=
false);
327 void *usr,
bool isMomCallback=
false);
329 void *usr,
bool isMomCallback=
false);
349 virtual MAKRti::DtTransportType internalTransportType()
const;
355 virtual bool setupSelectParams(DtSelectParam* params);
358 virtual bool hasTransport(MAKRti::DtTransportType trans);
376 virtual void listenToMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
377 virtual void dropMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
382 virtual void forceDropMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
387 virtual void connectFederation(
390 #elif defined(DtIFSPEC13)
394 MAKRti::DtString fedExName,
400 virtual bool repairFederationConnection();
405 virtual void disconnectFederation();
420 virtual bool lockServiceCall();
424 virtual void unlockServiceCall();
428 virtual bool serviceCallLocked();
433 virtual bool enterServiceCall();
437 virtual void exitServiceCall();
441 virtual bool inServiceCall();
447 #elif defined(DtIFSPEC1516E)
461 virtual void addFedAmbWrapper(MAKRti::DtString
const& name,
DtFedAmbWrapper* fedAmb);
467 virtual bool addFedAmbWrapperAtFront( MAKRti::DtString
const& name,
DtFedAmbWrapper* fedAmb );
470 virtual DtFedAmbWrapper* removeFedAmbWrapper(MAKRti::DtString
const& name);
473 virtual unsigned long connectionId()
const;
479 virtual unsigned long fedExHandle()
const;
482 virtual const MAKRti::DtString& fedExName()
const;
512 virtual bool wait(MAKRti::DtTime periodInSeconds,
bool unlockWhileWaiting =
false);
515 virtual void yield();
520 virtual bool saveInProgress()
const;
521 virtual void setSaveInProgress(
bool saveIsInProgress);
526 virtual bool restoreInProgress()
const;
527 virtual void setRestoreInProgress(
bool saveIsInProgress);
530 virtual bool saveRestoreInProgress()
const;
533 virtual void setMetadataControl(
DtMetadataType type,
bool onOff );
537 virtual void sendShutdownForwarderMsg();
540 virtual unsigned long sequenceNumber()
const;
543 virtual void incrementSequenceNumber();
549 virtual bool doWait(MAKRti::DtTime period);
554 virtual int initConnections();
558 virtual bool createBestEffortConn();
561 virtual void destroyBestEffortConn();
564 virtual bool createRelConn();
567 virtual void destroyRelConn();
571 virtual unsigned int createAncillaryRelConns();
577 virtual void destroyAncillaryRelConns();
580 virtual unsigned int ancillaryReliableConnsCount()
const;
584 virtual bool checkRelConn();
587 virtual void processReadResult(
int readError);
591 virtual int sendStampedUtilityFunction(
DtRtiMsg* msg,
592 MAKRti::DtTransportType transport,
595 const MAKRti::DtInetAddr& addr );
604 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient =
605 DtBoost::shared_ptr<DtRtiAssistantLrcClient>());
609 static void setCreatorFunction(DtConnectionMgrCreator fn);
615 static void setInternalCreatorFunction(DtConnectionMgrCreator fn);
726 WSAEVENT myBestEffortEvent;
729 WSAEVENT myReliableEvent;
775 addr(MAKRti::DtInetAddr::inaddrAny()),
780 MAKRti::DtInetAddr addrVal,
781 MAKRti::DtInetAddr netInterfaceVal,
789 MAKRti::DtInetAddr
addr;