9 #ifndef hExerciseConn_H_
10 #define hExerciseConn_H_
72 typedef DtTime (*DtLogicalTimeToVrlTimeConverter) (
const RTI::LogicalTime &theLogicalTime);
73 typedef std::auto_ptr<RTI::LogicalTime>(*DtVrlTimeToLogicalTimeConverter) (
const DtTime &time);
75 typedef DtTime (*DtFedTimeToVrlTimeConverter) (
const RTI::FedTime &theFedTIme);
76 typedef RTI::FedTime* (*DtVrlTimeToFedTimeConverter) (
const DtTime &time);
90 DtCOULD_NOT_CREATE_RTIAMB = 1,
91 DtCOULD_NOT_CREATE_FEDEX = 2,
92 DtCOULD_NOT_JOIN_FEDEX = 3,
93 DtCOULD_NOT_OPEN_FED = 4,
94 DtCOULD_NOT_PARSE_FED = 5,
95 DtCOULD_NOT_FIND_FOMMAPPER = 6,
96 DtERROR_OPENING_FOMMAPPER_LIB = 7,
97 DtCOULD_NOT_CONNECT_RTIAMB = 8
119 const char* federateType,
121 const char* fedFileName = 0,
122 InitializationStatus* status = 0
133 const char* federateType,
135 const char* fedFileName = 0,
136 void* fomMapInitData = 0,
137 InitializationStatus* status = 0
140 #if DtHLA_1516_EVOLVED
159 const char* federateName,
160 const char* federateType,
164 const std::vector<DtString>& fomModules = std::vector<DtString>(),
165 InitializationStatus* status = 0 );
180 const char* federateName,
181 const char* federateType,
184 void* fomMapInitData = 0,
186 const std::vector<DtString>& fomModules = std::vector<DtString>(),
187 InitializationStatus* status = 0 );
212 virtual void setReflecting();
215 virtual bool reflecting()
const;
228 virtual void setReflectRemoteUpdatesIntoPubFlag(
bool onff);
231 virtual bool reflectRemoteUpdatesIntoPubFlag()
const;
237 virtual void setReflectingThroughRti();
240 virtual bool reflectingThroughRti()
const;
251 virtual void ignoreAdvisories();
254 virtual bool usingAdvisories()
const;
256 void setRemoveObjectOnAttOutOfScope(
bool remove);
259 #if DtHLA_1516_EVOLVED
261 void listFederationExecutions()
const;
281 const RTI::RegionHandleSet* region);
284 const RTI::Region* region);
311 const RTI::RegionHandleSet* region);
314 const RTI::Region* region);
319 virtual DtTime currentTimeForStamping();
335 virtual int drainInput(
DtTime maxTime = -1,
DtTime minTime = 0.0);
352 virtual RTI::FederateHandle fedHandle()
const;
355 virtual const DtString& fedType()
const;
357 #if DtHLA_1516_EVOLVED
360 virtual const DtString& fedName()
const;
364 virtual const DtString& execName()
const;
367 virtual bool isUsingMakRti()
const;
377 virtual DtString rtiVersion()
const;
384 virtual DtFom* fom();
408 virtual void addInteractionCallback(RTI::InteractionClassHandle h,
417 virtual void addInteractionCallbackByName(
const char* className,
426 virtual void removeInteractionCallback(RTI::InteractionClassHandle h,
435 virtual void removeInteractionCallbackByName(
const char* className,
441 virtual void addDiscoverObjectCallback(RTI::ObjectClassHandle h,
448 virtual void removeDiscoverObjectCallback(RTI::ObjectClassHandle h,
454 virtual void addRemoveObjectCallback(
456 RTI::ObjectInstanceHandle
id,
466 virtual void removeRemoveObjectCallback(
468 RTI::ObjectInstanceHandle
id,
478 virtual void setDestroyFedExecFlag(
bool flag);
481 virtual bool destroyFedExecFlag();
486 virtual void setReplyingToSynchronizationPoints(
bool yesNo);
489 virtual bool replyingToSynchronizationPoints();
493 virtual void replyToSynchronizationPoint(
const char* label);
499 virtual void setAutoSubscribeFlag(
bool flag);
502 virtual bool autoSubscribeFlag()
const;
506 virtual void setSendFedTime(
bool flag);
509 virtual bool sendFedTime()
const;
518 virtual void setUseGeographicDdm(
bool flag);
522 virtual bool useGeographicDdm()
const;
524 virtual void setDeleteOnOutOfScope(
bool yesNo);
526 virtual bool deleteOnOutOfScope()
const;
530 virtual RTI::LogicalTimeFactory *logicalTimeFactory()
const;
537 virtual void registerSynchronizationPoint(
const DtString& label);
540 virtual void registerSynchronizationPoint(
543 const RTI::VariableLengthData& tag);
550 virtual void addSynchPointRegistrationSucceededCb(
const DtString& label,
554 virtual void addSynchPointRegistrationSucceededCb(
DtSynchPointCb func,
559 virtual void removeSynchPointRegistrationSucceededCb(
const DtString& label,
563 virtual void removeSynchPointRegistrationSucceededCb(
DtSynchPointCb func,
567 virtual void addSynchPointRegistrationFailedCb(
const DtString& label,
571 virtual void addSynchPointRegistrationFailedCb(
DtSynchPointCb func,
575 virtual void removeSynchPointRegistrationFailedCb(
const DtString& label,
579 virtual void removeSynchPointRegistrationFailedCb(
DtSynchPointCb func,
583 virtual void addFederationSynchedCb(
const DtString& label,
591 virtual void removeFederationSynchedCb(
const DtString& label,
598 #if DtHLA_1516_EVOLVED
610 virtual void addAnnounceSynchPointCb(
const DtString& label,
620 virtual void removeAnnounceSynchPointCb(
const DtString& label,
651 virtual void setObjectTagModifier(
const DtString& className,
662 virtual void setInteractionTagModifier(
const DtString& className,
670 static void setLogicalTimeFactoryFactoryParameter(std::wstring);
673 static std::wstring logicalTimeFactoryFactoryParameter();
678 static void setFedAmbCreator(DtFedAmbCreator creator);
681 static DtFedAmbCreator fedAmbCreator();
686 static void setRtiAmbCreator(DtRtiAmbCreator creator);
689 static DtRtiAmbCreator rtiAmbCreator();
695 static void overrideRidParameters(
const std::map<DtString, DtString>& ridParams);
705 static void setFomMapperCreator(DtFomMapperCreator creator,
709 static DtFomMapperCreator fomMapperCreator();
719 static void setLogicalTimeToVrlTimeConverter(DtLogicalTimeToVrlTimeConverter func);
720 static DtLogicalTimeToVrlTimeConverter logicalTimeToVrlTimeConverter();
722 static void setFedTimeToVrlTimeConverter(DtFedTimeToVrlTimeConverter func);
723 static DtFedTimeToVrlTimeConverter fedTimeToVrlTimeConverter();
733 static void setVrlTimeToLogicalTimeConverter(DtVrlTimeToLogicalTimeConverter func);
734 static DtVrlTimeToLogicalTimeConverter vrlTimeToLogicalTimeConverter();
736 static void setVrlTimeToFedTimeConverter(DtVrlTimeToFedTimeConverter func);
737 static DtVrlTimeToFedTimeConverter vrlTimeToFedTimeConverter();
747 static DtTime defaultDtLogicalTimeToVrlTimeConverter(
const RTI::LogicalTime &time);
749 static DtTime defaultDtFedTimeToVrlTimeConverter(
const RTI::FedTime &time);
754 static std::auto_ptr<RTI::LogicalTime> defaultVrlTimeToLogicalTimeConverter(
757 static RTI::FedTime* defaultVrlTimeToFedTimeConverter(
const DtTime &time);
768 void initializeConnection(InitializationStatus* result);
772 void initializeFomMapper(
const char* dsoName,
void* fomMapInitData,
773 InitializationStatus* result);
779 DtFomMapperCreator* creator,
780 DtFomMapperDeletor* deletor);
785 void handleFedFile(
const DtString& fedFileName);
791 int initFom(InitializationStatus* result);
796 int createRtiAmb(InitializationStatus* result);
803 int connectRtiAmb(InitializationStatus* result);
809 int createFedEx(InitializationStatus* result);
813 int createFedAmb(InitializationStatus* result);
818 int joinFedEx(InitializationStatus* result);
823 bool fedFileExists(
const DtFilename &name)
const;
826 void setFedFile(
const DtString& fedFile);
828 #if DtHLA_1516_EVOLVED
831 void setFomModules(
const std::vector<DtString>& modules);
834 void resignAndDisconnect();
840 static void replyToSyncPointCallback(
void* usr);
847 #if DtHLA_1516_EVOLVED
887 #if DtHLA_1516_EVOLVED
898 #if DtHLA_1516_EVOLVED
899 std::vector<std::wstring> myFomModules;
900 std::wstring myMimFomModule;
902 std::wstring myLocalSettingsDesignator;
934 static DtVrlTimeToFedTimeConverter theVrlTimeToFedTimeConverter;
935 static DtFedTimeToVrlTimeConverter theFedTimeToVrlTimeConverter;
967 #if DtHLA_1516_EVOLVED
968 inline const DtString& DtExerciseConn::fedName()
const