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>());
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 sendStampedAndDelete(
DtRtiMsg* msg,
145 MAKRti::DtTransportType transport,
146 const MAKRti::DtInetAddr& = MAKRti::DtInetAddr::inaddrAny());
150 virtual int sendStampedAnonymousAndDelete(
DtRtiMsg* msg,
151 MAKRti::DtTransportType transport,
152 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny());
158 virtual void sendLoopback(
DtRtiMsg* msg);
162 virtual bool flush();
166 virtual bool drainBacklog( MAKRti::DtTime timeout = 0.0 );
171 virtual void activateTransmitDelay();
174 virtual bool delayTransmit()
const;
182 virtual void testTransmitDelay();
187 virtual void activateAutoProvideDelay();
190 virtual bool delayAutoProvide()
const;
197 virtual void testAutoProvideDelay();
200 virtual void processQueuedMessages();
203 virtual void flushQueuedMessages();
207 virtual unsigned long incrementServiceCallCount();
210 virtual unsigned long serviceCallCount()
const;
214 virtual void setProcessingTick(
bool processingTick);
215 virtual bool processingTick()
const;
220 virtual void setEvokingCallbacks(
bool evokingCbs);
221 virtual bool evokingCallbacks()
const;
233 MAKRti::DtTransportType trans);
237 virtual bool processConnections();
246 virtual void addPendingMsg(
DtRtiMsg* msg);
247 virtual bool processPendingMsg();
249 virtual void emptyPendingMsgList();
250 virtual int pendingMsgCount();
254 virtual void updateBufferSizes();
277 #elif defined(DtIFSPEC1516E)
288 #elif defined(DtIFSPEC1516E)
300 void *usr,
bool isMomCallback=
false);
302 void *usr,
bool isMomCallback=
false);
304 void *usr,
bool isMomCallback=
false);
306 void *usr,
bool isMomCallback=
false);
326 virtual MAKRti::DtTransportType internalTransportType()
const;
332 virtual bool setupSelectParams(DtSelectParam* params);
335 virtual bool hasTransport(MAKRti::DtTransportType trans);
353 virtual void listenToMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
354 virtual void dropMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
359 virtual void forceDropMulticastGroup(
const MAKRti::DtInetAddr& addr,
const MAKRti::DtInetAddr& netInterface = MAKRti::DtInetAddr::inaddrAny());
364 virtual void connectFederation(
367 #elif defined(DtIFSPEC13)
371 MAKRti::DtString fedExName,
377 virtual bool repairFederationConnection();
382 virtual void disconnectFederation();
397 virtual bool lockServiceCall();
401 virtual void unlockServiceCall();
405 virtual bool serviceCallLocked();
410 virtual bool enterServiceCall();
414 virtual void exitServiceCall();
418 virtual bool inServiceCall();
424 #elif defined(DtIFSPEC1516E)
438 virtual void addFedAmbWrapper(MAKRti::DtString
const& name,
DtFedAmbWrapper* fedAmb);
444 virtual bool addFedAmbWrapperAtFront( MAKRti::DtString
const& name,
DtFedAmbWrapper* fedAmb );
447 virtual DtFedAmbWrapper* removeFedAmbWrapper(MAKRti::DtString
const& name);
450 virtual unsigned long connectionId()
const;
456 virtual unsigned long fedExHandle()
const;
459 virtual const MAKRti::DtString& fedExName()
const;
489 virtual bool wait(MAKRti::DtTime periodInSeconds,
bool unlockWhileWaiting =
false);
492 virtual void yield();
497 virtual bool saveInProgress()
const;
498 virtual void setSaveInProgress(
bool saveIsInProgress);
503 virtual bool restoreInProgress()
const;
504 virtual void setRestoreInProgress(
bool saveIsInProgress);
507 virtual bool saveRestoreInProgress()
const;
510 virtual void setMetadataControl(
DtMetadataType type,
bool onOff );
514 virtual void sendShutdownForwarderMsg();
517 virtual unsigned long sequenceNumber()
const;
520 virtual void incrementSequenceNumber();
526 virtual bool doWait(MAKRti::DtTime period);
531 virtual int initConnections();
535 virtual bool createBestEffortConn();
538 virtual void destroyBestEffortConn();
541 virtual bool createRelConn();
544 virtual void destroyRelConn();
548 virtual unsigned int createAncillaryRelConns();
554 virtual void destroyAncillaryRelConns();
557 virtual unsigned int ancillaryReliableConnsCount()
const;
561 virtual bool checkRelConn();
564 virtual void processReadResult(
int readError);
568 virtual int sendStampedUtilityFunction(
DtRtiMsg* msg,
569 MAKRti::DtTransportType transport,
572 const MAKRti::DtInetAddr& addr );
581 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient =
582 DtBoost::shared_ptr<DtRtiAssistantLrcClient>());
586 static void setCreatorFunction(DtConnectionMgrCreator fn);
592 static void setInternalCreatorFunction(DtConnectionMgrCreator fn);
703 WSAEVENT myBestEffortEvent;
706 WSAEVENT myReliableEvent;
752 addr(MAKRti::DtInetAddr::inaddrAny()),
757 MAKRti::DtInetAddr addrVal,
758 MAKRti::DtInetAddr netInterfaceVal,
766 MAKRti::DtInetAddr
addr;