9 #ifndef exerciseConnHLA_H_
10 #define exerciseConnHLA_H_
67 typedef void (*DtRtiErrorCb)(
const char* label,
void* usr);
74 typedef DtTime (*DtLogicalTimeToVrlTimeConverter) (
const RTI::LogicalTime &theLogicalTime);
75 typedef std::auto_ptr<RTI::LogicalTime>(*DtVrlTimeToLogicalTimeConverter) (
const DtTime &time);
77 typedef DtTime (*DtFedTimeToVrlTimeConverter) (
const RTI::FedTime &theFedTIme);
78 typedef RTI::FedTime* (*DtVrlTimeToFedTimeConverter) (
const DtTime &time);
92 DtCOULD_NOT_CREATE_RTIAMB = 1,
93 DtCOULD_NOT_CREATE_FEDEX = 2,
94 DtCOULD_NOT_JOIN_FEDEX = 3,
95 DtCOULD_NOT_OPEN_FED = 4,
96 DtCOULD_NOT_PARSE_FED = 5,
97 DtCOULD_NOT_FIND_FOMMAPPER = 6,
98 DtERROR_OPENING_FOMMAPPER_LIB = 7,
99 DtCOULD_NOT_CONNECT_RTIAMB = 8
121 const char* federateType,
123 const char* fedFileName = 0,
124 InitializationStatus* status = 0
135 const char* federateType,
137 const char* fedFileName = 0,
138 void* fomMapInitData = 0,
139 InitializationStatus* status = 0
142 #if DtHLA_1516_EVOLVED
161 const char* federateName,
162 const char* federateType,
166 const std::vector<DtString>& fomModules = std::vector<DtString>(),
167 InitializationStatus* status = 0 );
182 const char* federateName,
183 const char* federateType,
186 void* fomMapInitData = 0,
188 const std::vector<DtString>& fomModules = std::vector<DtString>(),
189 InitializationStatus* status = 0 );
214 virtual void setReflecting();
217 virtual bool reflecting()
const;
238 virtual void setReflectRemoteUpdatesIntoPubFlag(
bool onff);
241 virtual bool reflectRemoteUpdatesIntoPubFlag()
const;
247 virtual void setReflectingThroughRti();
250 virtual bool reflectingThroughRti()
const;
261 virtual void ignoreAdvisories();
264 virtual bool usingAdvisories()
const;
266 virtual void setRemoveObjectOnAttOutOfScope(
bool remove);
274 virtual bool enabledGenericAttributes()
const;
276 #if DtHLA_1516_EVOLVED
278 void listFederationExecutions();
298 const RTI::RegionHandleSet* region);
301 const RTI::Region* region);
328 const RTI::RegionHandleSet* region);
331 const RTI::Region* region);
336 virtual DtTime currentTimeForStamping();
352 virtual int drainInput(
DtTime maxTime = -1,
DtTime minTime = 0.0);
369 virtual RTI::FederateHandle fedHandle()
const;
372 virtual const DtString& fedType()
const;
374 #if DtHLA_1516_EVOLVED
377 virtual const DtString& fedName()
const;
381 virtual const DtString& execName()
const;
384 virtual bool isUsingMakRti()
const;
394 virtual DtString rtiVersion()
const;
401 virtual DtFom* fom();
425 virtual void addInteractionCallback(RTI::InteractionClassHandle h,
434 virtual void addInteractionCallbackByName(
const char* className,
443 virtual void removeInteractionCallback(RTI::InteractionClassHandle h,
452 virtual void removeInteractionCallbackByName(
const char* className,
458 virtual void addDiscoverObjectCallback(RTI::ObjectClassHandle h,
465 virtual void removeDiscoverObjectCallback(RTI::ObjectClassHandle h,
471 virtual void addRemoveObjectCallback(
473 RTI::ObjectInstanceHandle
id,
475 RTI::ObjectHandle
id,
483 virtual void removeRemoveObjectCallback(
485 RTI::ObjectInstanceHandle
id,
487 RTI::ObjectHandle
id,
495 virtual void setDestroyFedExecFlag(
bool flag);
498 virtual bool destroyFedExecFlag();
503 virtual void setReplyingToSynchronizationPoints(
bool yesNo);
506 virtual bool replyingToSynchronizationPoints();
510 virtual void replyToSynchronizationPoint(
const char* label);
516 virtual void setAutoSubscribeFlag(
bool flag);
519 virtual bool autoSubscribeFlag()
const;
523 virtual void setSendFedTime(
bool flag);
526 virtual bool sendFedTime()
const;
535 virtual void setUseGeographicDdm(
bool flag);
539 virtual bool useGeographicDdm()
const;
541 virtual void setDeleteOnOutOfScope(
bool yesNo);
543 virtual bool deleteOnOutOfScope()
const;
547 virtual RTI::LogicalTimeFactory *logicalTimeFactory()
const;
553 virtual void registerSynchronizationPoint(
const DtString& label);
556 virtual void registerSynchronizationPoint(
559 const RTI::VariableLengthData& tag);
565 virtual void addFederateSaveCb(
const DtString& label,
570 virtual void addFederateRestoreCb(
const DtString& label,
575 virtual void removeFederateSaveCb(
const DtString& label,
580 virtual void removeFederateRestoreCb(
const DtString& label,
586 virtual void addSynchPointRegistrationSucceededCb(
const DtString& label,
590 virtual void addSynchPointRegistrationSucceededCb(
DtSynchPointCb func,
595 virtual void removeSynchPointRegistrationSucceededCb(
const DtString& label,
599 virtual void removeSynchPointRegistrationSucceededCb(
DtSynchPointCb func,
603 virtual void addSynchPointRegistrationFailedCb(
const DtString& label,
607 virtual void addSynchPointRegistrationFailedCb(
DtSynchPointCb func,
611 virtual void removeSynchPointRegistrationFailedCb(
const DtString& label,
615 virtual void removeSynchPointRegistrationFailedCb(
DtSynchPointCb func,
619 virtual void addFederationSynchedCb(
const DtString& label,
627 virtual void removeFederationSynchedCb(
const DtString& label,
639 virtual void addRtiErrorCb(
const DtString& label, DtRtiErrorCb func,
641 virtual void removeRtiErrorCb(
const DtString& label, DtRtiErrorCb func,
643 virtual void addRtiErrorCb(DtRtiErrorCb func,
void* usr);
644 virtual void removeRtiErrorCb(DtRtiErrorCb func,
void* usr);
647 #if DtHLA_1516_EVOLVED
649 virtual void addConnectionLostCb(DtConnectionLostCb func,
652 virtual void removeConnectionLostCb(DtConnectionLostCb func,
void *usr);
658 virtual void addAnnounceSynchPointCb(
const DtString& label,
668 virtual void removeAnnounceSynchPointCb(
const DtString& label,
699 virtual void setObjectTagModifier(
const DtString& className,
710 virtual void setInteractionTagModifier(
const DtString& className,
735 static void setLogicalTimeFactoryFactoryParameter(std::wstring);
738 static std::wstring logicalTimeFactoryFactoryParameter();
743 static void setFedAmbCreator(DtFedAmbCreator creator);
746 static DtFedAmbCreator fedAmbCreator();
751 static void setRtiAmbCreator(DtRtiAmbCreator creator);
754 static DtRtiAmbCreator rtiAmbCreator();
760 static void overrideRidParameters(
const std::map<DtString, DtString>& ridParams);
770 static void setFomMapperCreator(DtFomMapperCreator creator,
774 static DtFomMapperCreator fomMapperCreator();
784 static void setLogicalTimeToVrlTimeConverter(DtLogicalTimeToVrlTimeConverter func);
785 static DtLogicalTimeToVrlTimeConverter logicalTimeToVrlTimeConverter();
787 static void setFedTimeToVrlTimeConverter(DtFedTimeToVrlTimeConverter func);
788 static DtFedTimeToVrlTimeConverter fedTimeToVrlTimeConverter();
798 static void setVrlTimeToLogicalTimeConverter(DtVrlTimeToLogicalTimeConverter func);
799 static DtVrlTimeToLogicalTimeConverter vrlTimeToLogicalTimeConverter();
801 static void setVrlTimeToFedTimeConverter(DtVrlTimeToFedTimeConverter func);
802 static DtVrlTimeToFedTimeConverter vrlTimeToFedTimeConverter();
812 static DtTime defaultDtLogicalTimeToVrlTimeConverter(
const RTI::LogicalTime &time);
814 static DtTime defaultDtFedTimeToVrlTimeConverter(
const RTI::FedTime &time);
819 static std::auto_ptr<RTI::LogicalTime> defaultVrlTimeToLogicalTimeConverter(
822 static RTI::FedTime* defaultVrlTimeToFedTimeConverter(
const DtTime &time);
832 virtual bool callRtiErrorCallback(
DtString &label);
837 bool checkRtiVersionForPointerAlignment();
840 void initializeConnection(InitializationStatus* result);
844 void initializeFomMapper(
const char* dsoName,
void* fomMapInitData,
845 InitializationStatus* result);
851 DtFomMapperCreator* creator,
852 DtFomMapperDeletor* deletor);
857 void handleFedFile(
const DtString& fedFileName);
863 int initFom(InitializationStatus* result);
868 int createRtiAmb(InitializationStatus* result);
875 int connectRtiAmb(InitializationStatus* result);
881 int createFedEx(InitializationStatus* result);
885 int createFedAmb(InitializationStatus* result);
890 int joinFedEx(InitializationStatus* result);
895 bool fedFileExists(
const DtFilename &name)
const;
897 #if DtHLA_1516_EVOLVED
900 void setFomModules(
const std::vector<DtString>& modules);
903 void resignAndDisconnect();
910 virtual void rtiSend(
DtInteraction& msg, RTI::InteractionClassHandle handle,
911 const RTI::RegionHandleSet* region);
913 virtual void rtiSend(
DtInteraction& msg, RTI::InteractionClassHandle handle,
914 const RTI::Region* region);
919 virtual void selfReflectInteraction(
DtInteraction& msg, RTI::InteractionClassHandle handle,
920 const RTI::RegionHandleSet* region);
922 virtual void selfReflectInteraction(
DtInteraction& msg, RTI::InteractionClassHandle handle,
923 const RTI::Region* region);
929 static void replyToSyncPointCallback(
void* usr);
936 #if DtHLA_1516_EVOLVED
944 std::auto_ptr<RTI::LogicalTimeFactory> myLogicalTimeFactory;
980 #if DtHLA_1516_EVOLVED
991 #if DtHLA_1516_EVOLVED
992 std::vector<std::wstring> myFomModules;
993 std::wstring myMimFomModule;
995 std::wstring myLocalSettingsDesignator;
997 std::vector<std::wstring> myRtiArguments;
1001 RTI::VariableLengthData myTag;
1037 static DtVrlTimeToLogicalTimeConverter theVrlTimeToLogicalTimeConverter;
1038 static DtLogicalTimeToVrlTimeConverter theLogicalTimeToVrlTimeConverter;
1075 #if DtHLA_1516_EVOLVED
1076 inline const DtString& DtExerciseConn::fedName()
const