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;
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
288 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
386 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,
494 virtual void removeRemoveObjectCallback(
496 RTI::ObjectInstanceHandle
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;
557 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
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,
743 static void setLogicalTimeFactoryFactoryParameter(std::wstring);
749 static std::wstring logicalTimeFactoryFactoryParameter();
751 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();
823 static DtTime defaultDtLogicalTimeToVrlTimeConverter(
const RTI::LogicalTime &time);
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
909 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
992 #if DtHLA_1516_EVOLVED
1003 #if DtHLA_1516_EVOLVED
1004 std::vector<std::wstring> myFomModules;
1005 std::wstring myMimFomModule;
1007 std::wstring myLocalSettingsDesignator;
1052 static DtVrlTimeToFedTimeConverter theVrlTimeToFedTimeConverter;
1053 static DtFedTimeToVrlTimeConverter theFedTimeToVrlTimeConverter;
1087 #if DtHLA_1516_EVOLVED
1088 inline const DtString& DtExerciseConn::fedName()
const
bool myDeleteOnOutOfScope
Definition: exerciseConnHLA.h:991
DtInteraction is an abstract base class for representing HLA interactions (or events) (as opposed to ...
Definition: interactionHLA.h:33
Contains the HLA DtExerciseConnInitializer class declaration.
virtual void setDeleteOnOutOfScope(bool yesNo)
Definition: exerciseConnHLA.h:1125
bool myDestroyFedExFlag
Definition: exerciseConnHLA.h:975
void * userData
Definition: exerciseConnHLA.h:1033
bool myReflectRemoteUpdatesIntoPubFlag
Definition: exerciseConnHLA.h:981
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnHLA.h:58
A protocol independent (HLA13/HLA1516) file for the VR-Link FedAmb.
DtString myFedType
Definition: exerciseConnHLA.h:946
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Instances of DtExerciseConnInitializer are used to provide the DtExerciseConn with initialization dat...
Definition: exerciseConnInitializerHLA.h:41
static void * theFomMapInitData
Definition: exerciseConnHLA.h:1047
DtExerciseConnInitializer::DtGetValueMethod myGetValueMethod
Definition: exerciseConnHLA.h:987
DtFomMapperCreator myDsoCreator
Definition: exerciseConnHLA.h:969
DtBaseExerciseConn & operator=(const DtBaseExerciseConn &)
Assignment Operator – Not Implemented.
static DtVrlTimeToLogicalTimeConverter theVrlTimeToLogicalTimeConverter
Definition: exerciseConnHLA.h:1049
Instances of DtVrlFederateAmbassador are used to manage the interface between the RTI and the VR-Link...
Definition: vrlFederateAmbassador1516.h:46
virtual RTI::FederateHandle fedHandle() const
Get the federate handle.
Definition: exerciseConnHLA.h:1082
DtFomMapperDeletor myDsoDeletor
Definition: exerciseConnHLA.h:970
void(* DtDiscoverObjectCb)(DtHlaObject *obj, void *usr)
Definition: discoverObjectCbInfo.h:20
DtRtiErrorCb cbFunction
Definition: exerciseConnHLA.h:1032
virtual DtVrlRtiAmbassador * rtiAmb()
Get the RTI ambassador.
Definition: exerciseConnHLA.h:1062
static DtFomMapperCreator theFomMapperCreator
Definition: exerciseConnHLA.h:1046
DtBaseExerciseConn is an abstract base class.
Definition: baseExerciseConn.h:31
This file provides a definition of GeodeticCoords and several helper functions.
Instances of DtGeodeticCoord are used to explicitly represent Geodetic coordinates.
Definition: geodeticCoord.h:29
This file declares macros which specify the VR-Link version.
static DtFomMapper * create(void *usr)
Creator function - returns new instance of DtRprFomMapper.
DtTimeStampType myRelOrAbs
Definition: exerciseConnHLA.h:973
DtHlaObjectManager * myHlaObjectManager
Definition: exerciseConnHLA.h:963
Represents a particular FOM, as described by a FED file.
Definition: fom.h:39
bool mySendFedTimeFlag
Definition: exerciseConnHLA.h:986
bool myPauseOnSaveRestore
Definition: exerciseConnHLA.h:988
DtBoost::shared_ptr< DtDDMRegion > DtDDMRegionSP
Definition: region1516.h:29
DtGeodeticCoord myDdmPlayBoxLowerBound
The lower bound of the play box - or total simulation area - when using geographic DDM...
Definition: exerciseConnHLA.h:1021
void(* DtSynchPointCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador1516.h:31
DtString myFedFile
myFedFile is used to specify a Fed File for the federation.
Definition: exerciseConnHLA.h:1001
virtual void sendStamped(const DtStateMsg &msg)=0
Send a state message to the network which has been time stamped with the current time.
bool myUseGeographicDdm
Definition: exerciseConnHLA.h:990
DtFomMapper * myFomMapper
Definition: exerciseConnHLA.h:967
void * userData
Definition: exerciseConnHLA.h:1040
void(* DtReceiveInteractionCb)(DtInteraction *inter, void *usr)
Definition: receiveInteractionCbInfo.h:23
ObjectInstanceHandle ObjectHandle
Definition: rtiCompatibility.h:192
Instances of DtInteractionFactory are used to create derived DtInteractions based on Interaction Clas...
Definition: interactionFactory.h:29
Contains the DtRprFomMapper class declaration.
DtEventID myCurrentEventId
Definition: exerciseConnHLA.h:972
virtual void send(const DtStateMsg &msg)=0
Send a state message to the network.
DtVrlFederateAmbassador * myFedAmb
Definition: exerciseConnHLA.h:959
DtVrlRtiAmbassador * myRtiAmb
Definition: exerciseConnHLA.h:957
class DtInteractionManager:
Definition: interactionManager.h:25
InitializationStatus
Initialization Error Enumerations.
Definition: exerciseConnHLA.h:90
DtString label
Definition: exerciseConnHLA.h:1038
virtual void setSendFedTime(bool flag)
Set flag which determines whether to use Time Stamp Order when sending and receiving interactions...
Definition: exerciseConnHLA.h:1105
std::auto_ptr< RTI::LogicalTimeFactory > myLogicalTimeFactory
Definition: exerciseConnHLA.h:955
virtual DtHlaObjectManager * hlaObjectManager()
Get the hlaObjectManager.
Definition: exerciseConnHLA.h:1072
Represents Events in the RPR FOM.
Definition: eventId.h:52
virtual void setUseGeographicDdm(bool flag)
Set flag which indicates geographic whether Geographic DDM is to be used or not.
Definition: exerciseConnHLA.h:1115
RTI::VariableLengthData myTag
Definition: exerciseConnHLA.h:1013
RTI::FederateHandle myFedHandle
Definition: exerciseConnHLA.h:958
static DtRtiAmbCreator theRtiAmbCreator
Definition: exerciseConnHLA.h:1045
bool myReplyingToSynchronizationPoints
Definition: exerciseConnHLA.h:983
bool myAutoSubscribeFlag
Definition: exerciseConnHLA.h:985
Instances of DtFilename are DtStrings which convert filenames to the native format.
Definition: vlFilename.h:20
bool myReflecting
Definition: exerciseConnHLA.h:980
virtual const DtString & execName() const
Get the federation execution name.
Definition: exerciseConnHLA.h:1099
static std::wstring myLogicalTimeFactFactParam
Definition: exerciseConnHLA.h:1043
std::list< DtGeneralRtiErrorCbInfo > myRtiErrorCbList
Definition: exerciseConnHLA.h:1056
DtGeodeticCoord myDdmPlayBoxUpperBound
The upper bound of the play box - or the total simulation area - when using geographic DDM...
Definition: exerciseConnHLA.h:1026
bool myPassiveMode
Definition: exerciseConnHLA.h:979
This is a base class meant to encapsulate user callbacks on ownership management services.
Definition: ownershipHandlerHLA.h:27
std::vector< std::wstring > myRtiArguments
Definition: exerciseConnHLA.h:1009
DtDynamicLibrary provides an operating independent way to manipulate dynamically loaded libraries...
Definition: vlDynamic.h:23
DtOwnershipHandler * myOwnershipHandler
Definition: exerciseConnHLA.h:965
class DtHlaObjectManager:
Definition: hlaObjectManager.h:30
DtString myExecName
Definition: exerciseConnHLA.h:944
bool myGenericAttributes
Definition: exerciseConnHLA.h:978
std::list< DtLabelledRtiErrorCbInfo > myLabRtiErrorCbList
Definition: exerciseConnHLA.h:1057
DtRtiErrorCb cbFunction
Definition: exerciseConnHLA.h:1039
DtFom * myFom
Definition: exerciseConnHLA.h:961
DtBoost::shared_ptr< DtInteractionTagModifier > DtInteractionTagModifierSP
Shared pointer typedefs for ease of use.
Definition: userTagModifiers.h:34
DtTimeStampType
Definition: vlTimeStampType.h:16
bool myReflectingThroughRti
Definition: exerciseConnHLA.h:982
Definition: exerciseConnHLA.h:1030
virtual const DtString & fedType() const
Returns the specified type of the federate.
Definition: exerciseConnHLA.h:1094
virtual bool sendFedTime() const
Get the send fed time flag. See above description.
Definition: exerciseConnHLA.h:1110
Instances of DtVrlRtiAmbassador are for wrapping the calls to The RTI ambassador so that we may overr...
Definition: vrlRtiAmbassador1516.h:25
DtReal DtTime
A definition of DtTime.
Definition: vlTime.h:19
Contains the DtEventId class declaration.
DtDynamicLibrary * myFomMapperDso
Definition: exerciseConnHLA.h:968
Instances of DtString are used to represent strings.
Definition: vlString.h:29
bool myUseFomMapperDeletor
Definition: exerciseConnHLA.h:976
This file provides protocol independence for the DtVrlRtiAmbassador class.
DtBoost::shared_ptr< DtObjectTagModifier > DtObjectTagModifierSP
Shared pointer typedefs for ease of use.
Definition: userTagModifiers.h:33
This file provides a declaration of the class DtBaseExerciseConn.
virtual DtFom * fom()
Get the FOM.
Definition: exerciseConnHLA.h:1077
Definition: exerciseConnHLA.h:1036
virtual bool deleteOnOutOfScope() const
Definition: exerciseConnHLA.h:1130
Instances of DtFomMapper are used to provide FOM agility in VR-Link by mapping VR-Link classes and fu...
Definition: fomMapper.h:36
DtInteractionManager * myInteractionManager
Definition: exerciseConnHLA.h:964
class DtStateMsg:
Definition: stateMsgHLA.h:32
This file is used as a convenience to group RTI related callbacks together.
Instances of DtHlaObjectFactory are used to create HLA objects.
Definition: hlaObjectFactory.h:20
This file contains declarations of the classes DtObjectTagModifier and DtInteractionTagModifier.
static DtLogicalTimeToVrlTimeConverter theLogicalTimeToVrlTimeConverter
Definition: exerciseConnHLA.h:1050
void(* DtFederateSaveCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador1516.h:23
void(* DtConnectionLostCb)(const std::wstring &faultDescription, void *theUserData)
Definition: connectionLostCbList.h:21
bool myUsingAdvisories
Definition: exerciseConnHLA.h:984
DtString myRtiError
used to save the Rti error incurred during connection init stage
Definition: exerciseConnHLA.h:998
static DtFedAmbCreator theFedAmbCreator
Definition: exerciseConnHLA.h:1044
virtual DtVrlFederateAmbassador * fedAmb()
Get the federate ambassador.
Definition: exerciseConnHLA.h:1067
void(* DtRemoveObjectCb)(DtHlaObject *obj, void *usr)
Definition: removeObjectCbInfo.h:22
virtual bool useGeographicDdm() const
Returns whether this federate is using Geographic DDM.
Definition: exerciseConnHLA.h:1120
void(* DtAnnounceSynchPointCb)(const char *label, const RTI::VariableLengthData &tag, void *usr)
Definition: vrlFederateAmbassador1516.h:35
DtGetValueMethod
Indicate if getValue or getValuePointer should be used to retrieve data from handleValuePairSets.
Definition: exerciseConnInitializerHLA.h:47