9 #ifndef exerciseConnHLA_H_
10 #define exerciseConnHLA_H_
67 typedef void (*DtRtiErrorCb)(
const char* label,
void* usr);
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;
225 virtual void setPassiveMode();
228 virtual bool passiveMode()
const;
249 virtual void setReflectRemoteUpdatesIntoPubFlag(
bool onff);
252 virtual bool reflectRemoteUpdatesIntoPubFlag()
const;
258 virtual void setReflectingThroughRti();
261 virtual bool reflectingThroughRti()
const;
272 virtual void ignoreAdvisories();
275 virtual bool usingAdvisories()
const;
277 virtual void setRemoveObjectOnAttOutOfScope(
bool remove);
285 virtual bool enabledGenericAttributes()
const;
287 #if DtHLA_1516_EVOLVED
289 void listFederationExecutions();
309 const RTI::RegionHandleSet* region);
312 const RTI::Region* region);
339 const RTI::RegionHandleSet* region);
342 const RTI::Region* region);
347 virtual DtTime currentTimeForStamping();
363 virtual int drainInput(
DtTime maxTime = -1,
DtTime minTime = 0.0);
380 virtual RTI::FederateHandle fedHandle()
const;
383 virtual const DtString& fedType()
const;
385 #if DtHLA_1516_EVOLVED
388 virtual const DtString& fedName()
const;
392 virtual const DtString& execName()
const;
395 virtual bool isUsingMakRti()
const;
405 virtual DtString rtiVersion()
const;
412 virtual DtFom* fom();
436 virtual void addInteractionCallback(RTI::InteractionClassHandle h,
445 virtual void addInteractionCallbackByName(
const char* className,
454 virtual void removeInteractionCallback(RTI::InteractionClassHandle h,
463 virtual void removeInteractionCallbackByName(
const char* className,
469 virtual void addDiscoverObjectCallback(RTI::ObjectClassHandle h,
476 virtual void removeDiscoverObjectCallback(RTI::ObjectClassHandle h,
482 virtual void addRemoveObjectCallback(
484 RTI::ObjectInstanceHandle
id,
486 RTI::ObjectHandle
id,
494 virtual void removeRemoveObjectCallback(
496 RTI::ObjectInstanceHandle
id,
498 RTI::ObjectHandle
id,
506 virtual void setDestroyFedExecFlag(
bool flag);
509 virtual bool destroyFedExecFlag();
514 virtual void setReplyingToSynchronizationPoints(
bool yesNo);
517 virtual bool replyingToSynchronizationPoints();
521 virtual void replyToSynchronizationPoint(
const char* label);
527 virtual void setAutoSubscribeFlag(
bool flag);
530 virtual bool autoSubscribeFlag()
const;
534 virtual void setSendFedTime(
bool flag);
537 virtual bool sendFedTime()
const;
546 virtual void setUseGeographicDdm(
bool flag);
550 virtual bool useGeographicDdm()
const;
552 virtual void setDeleteOnOutOfScope(
bool yesNo);
554 virtual bool deleteOnOutOfScope()
const;
558 virtual RTI::LogicalTimeFactory *logicalTimeFactory()
const;
564 virtual void registerSynchronizationPoint(
const DtString& label);
567 virtual void registerSynchronizationPoint(
570 const RTI::VariableLengthData& tag);
576 virtual void addFederateSaveCb(
const DtString& label,
581 virtual void addFederateRestoreCb(
const DtString& label,
586 virtual void removeFederateSaveCb(
const DtString& label,
591 virtual void removeFederateRestoreCb(
const DtString& label,
597 virtual void addSynchPointRegistrationSucceededCb(
const DtString& label,
601 virtual void addSynchPointRegistrationSucceededCb(
DtSynchPointCb func,
606 virtual void removeSynchPointRegistrationSucceededCb(
const DtString& label,
610 virtual void removeSynchPointRegistrationSucceededCb(
DtSynchPointCb func,
614 virtual void addSynchPointRegistrationFailedCb(
const DtString& label,
618 virtual void addSynchPointRegistrationFailedCb(
DtSynchPointCb func,
622 virtual void removeSynchPointRegistrationFailedCb(
const DtString& label,
626 virtual void removeSynchPointRegistrationFailedCb(
DtSynchPointCb func,
630 virtual void addFederationSynchedCb(
const DtString& label,
638 virtual void removeFederationSynchedCb(
const DtString& label,
650 virtual void addRtiErrorCb(
const DtString& label, DtRtiErrorCb func,
652 virtual void removeRtiErrorCb(
const DtString& label, DtRtiErrorCb func,
654 virtual void addRtiErrorCb(DtRtiErrorCb func,
void* usr);
655 virtual void removeRtiErrorCb(DtRtiErrorCb func,
void* usr);
658 #if DtHLA_1516_EVOLVED
660 virtual void addConnectionLostCb(DtConnectionLostCb func,
663 virtual void removeConnectionLostCb(DtConnectionLostCb func,
void *usr);
669 virtual void addAnnounceSynchPointCb(
const DtString& label,
679 virtual void removeAnnounceSynchPointCb(
const DtString& label,
710 virtual void setObjectTagModifier(
const DtString& className,
721 virtual void setInteractionTagModifier(
const DtString& className,
746 static void setLogicalTimeFactoryFactoryParameter(std::wstring);
749 static std::wstring logicalTimeFactoryFactoryParameter();
754 static void setFedAmbCreator(DtFedAmbCreator creator);
757 static DtFedAmbCreator fedAmbCreator();
762 static void setRtiAmbCreator(DtRtiAmbCreator creator);
765 static DtRtiAmbCreator rtiAmbCreator();
771 static void overrideRidParameters(
const std::map<DtString, DtString>& ridParams);
781 static void setFomMapperCreator(DtFomMapperCreator creator,
785 static DtFomMapperCreator fomMapperCreator();
795 static void setLogicalTimeToVrlTimeConverter(DtLogicalTimeToVrlTimeConverter func);
796 static DtLogicalTimeToVrlTimeConverter logicalTimeToVrlTimeConverter();
798 static void setFedTimeToVrlTimeConverter(DtFedTimeToVrlTimeConverter func);
799 static DtFedTimeToVrlTimeConverter fedTimeToVrlTimeConverter();
809 static void setVrlTimeToLogicalTimeConverter(DtVrlTimeToLogicalTimeConverter func);
810 static DtVrlTimeToLogicalTimeConverter vrlTimeToLogicalTimeConverter();
812 static void setVrlTimeToFedTimeConverter(DtVrlTimeToFedTimeConverter func);
813 static DtVrlTimeToFedTimeConverter vrlTimeToFedTimeConverter();
825 static DtTime defaultDtFedTimeToVrlTimeConverter(
const RTI::FedTime &time);
830 static std::auto_ptr<RTI::LogicalTime> defaultVrlTimeToLogicalTimeConverter(
833 static RTI::FedTime* defaultVrlTimeToFedTimeConverter(
const DtTime &time);
843 virtual bool callRtiErrorCallback(
DtString &label);
848 bool checkRtiVersionForPointerAlignment();
851 void initializeConnection(InitializationStatus* result);
855 void initializeFomMapper(
const char* dsoName,
void* fomMapInitData,
856 InitializationStatus* result);
862 DtFomMapperCreator* creator,
863 DtFomMapperDeletor* deletor);
868 void handleFedFile(
const DtString& fedFileName);
874 int initFom(InitializationStatus* result);
879 int createRtiAmb(InitializationStatus* result);
886 int connectRtiAmb(InitializationStatus* result);
892 int createFedEx(InitializationStatus* result);
896 int createFedAmb(InitializationStatus* result);
901 int joinFedEx(InitializationStatus* result);
906 bool fedFileExists(
const DtFilename &name)
const;
908 #if DtHLA_1516_EVOLVED
911 void setFomModules(
const std::vector<DtString>& modules);
914 void resignAndDisconnect();
921 virtual void rtiSend(
DtInteraction& msg, RTI::InteractionClassHandle handle,
922 const RTI::RegionHandleSet* region);
924 virtual void rtiSend(
DtInteraction& msg, RTI::InteractionClassHandle handle,
925 const RTI::Region* region);
930 virtual void selfReflectInteraction(
DtInteraction& msg, RTI::InteractionClassHandle handle,
931 const RTI::RegionHandleSet* region);
933 virtual void selfReflectInteraction(
DtInteraction& msg, RTI::InteractionClassHandle handle,
934 const RTI::Region* region);
940 static void replyToSyncPointCallback(
void* usr);
947 #if DtHLA_1516_EVOLVED
955 std::auto_ptr<RTI::LogicalTimeFactory> myLogicalTimeFactory;
992 #if DtHLA_1516_EVOLVED
1003 #if DtHLA_1516_EVOLVED
1009 std::vector<std::wstring> myRtiArguments;
1013 RTI::VariableLengthData myTag;
1049 static DtVrlTimeToLogicalTimeConverter theVrlTimeToLogicalTimeConverter;
1050 static DtLogicalTimeToVrlTimeConverter theLogicalTimeToVrlTimeConverter;
1087 #if DtHLA_1516_EVOLVED