Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef lgrHlaSimInterface_H_
00011 #define lgrHlaSimInterface_H_
00012
00013 #if DtHLA
00014
00015 #include "lgrSim.h"
00016 #include "lgrSimInterface.h"
00017 #include "virtualConstructor.h"
00018
00019 #include <vector>
00020 #include <vlutil/vlString.h>
00021
00022 namespace MAKLogger
00023 {
00024 class DtBaseFomDesc;
00025 class DtLogger;
00026 class DtLgrHlaSimDriver;
00027 class DtLgrHlaCommandFactory;
00028
00029
00033 class DT_DLL_LGRSIM DtLgrHlaSimInterface : public DtLgrSimInterface
00034 {
00035 public:
00036
00037 typedef DtLgrHlaCommandFactory Factory;
00038
00040 static DtLgrHlaSimInterface* create(DtLogger&);
00041
00043 static DtLgrSimInterface* createBase(DtLogger&);
00044
00047 static DtLgrHlaSimInterface* createNonThreadsafe(DtLogger& logger,
00048 const DtLgrHlaSimDriver& driver);
00049
00050 public:
00051
00052 virtual ~DtLgrHlaSimInterface();
00053
00055 virtual void setConnectionParameters(const DtString& federateName,
00056 #if DtHLA_1516_EVOLVED
00057 const DtString& federateType,
00058 #endif
00059 const DtString& federationName,
00060 const DtString& fedFile,
00061 #if DtHLA_1516_EVOLVED
00062 const std::vector<DtString>& fomModules,
00063 const DtString& mim,
00064 #endif
00065 bool ignoreAdvisories, double fomVersion, int fomRevision, const DtString& fomMapper,
00066 const DtString& fomMapperInitData, bool useEmptyFomMapper) const;
00067
00069 virtual void setSubscriptionLists(const std::vector<DtString>& objectClasses,
00070 const std::vector<DtString>& interactionClasses) const;
00071
00074 virtual DtString protocol() const;
00075
00077 virtual void getLoggerName(DtString& name) const;
00078
00080 virtual double fomVersion() const;
00081
00083 virtual int fomRevision() const;
00084
00086 virtual const DtString& fomMapper() const;
00087
00089 virtual const DtString& fomMapperInitData() const;
00090
00092 virtual const DtString& federateName() const;
00093
00095 virtual const DtString& federationName() const;
00096
00098 virtual const DtString& fedFile() const;
00099
00100 #if DtHLA_1516_EVOLVED
00101
00103 virtual const DtString& federateType() const;
00104
00106 virtual const std::vector<DtString>& fomModules() const;
00107
00109 virtual const DtString& mim() const;
00110
00111 #endif // DtHLA_1516_EVOLVED
00112
00114 virtual const DtBaseFomDesc* fomDescription() const;
00115
00117 virtual const std::vector<DtString>& objectSubscriptionList() const;
00118
00120 virtual const std::vector<DtString>& interactionSubscriptionList() const;
00121
00123 virtual const bool isTimeConstrained() const;
00124
00126 virtual const bool isTimeRegulating() const;
00127
00129 virtual const double lookAhead() const;
00130
00132 virtual bool timeManagementEnabled() const;
00133
00135 virtual double drainInputMaxTime() const;
00136
00138 virtual double drainInputMinTime() const;
00139
00141 virtual const void setDrainInputSettings(double maxTime, double minTime) const;
00142
00144 virtual bool ignoreAdvisories() const;
00145
00147 virtual bool useEmptyFomMapper() const;
00148
00150 virtual const void setTimeManagementSettings(bool constrainedRecording,
00151 bool constrainedPlayback,bool regulatingRecording, bool regulatingPlayback,
00152 double lookahead) const;
00153
00155 virtual bool timeConstrainedRecording() const;
00156
00158 virtual bool timeConstrainedPlayback() const;
00159
00161 virtual bool timeRegulatingRecording() const;
00162
00164 virtual bool timeRegulatingPlayback() const;
00165
00166 protected:
00167
00169 DtLgrHlaSimInterface(DtLogger& logger, const DtLgrHlaSimDriver& driver);
00170
00172 void connectResponseHandler(DtLgrCommandId id,
00173 void (DtLgrHlaSimInterface::* function)(DtResponse));
00174
00176
00177
00178 void connectionParametersChanged(DtResponse);
00179 void fomChanged(DtResponse);
00180 void subscriptionListsChanged(DtResponse);
00181 void timeManagementSettingsChanged(DtResponse);
00182 void timeManagementEnabledChanged(DtResponse);
00183 void drainInputSettingsChanged(DtResponse);
00184 void ignoreAdvisoriesChanged(DtResponse response);
00186
00187
00188 protected:
00189 double myFomVersion;
00190 int myFomRevision;
00191 DtString myFomMapper;
00192 DtString myFomMapperData;
00193 DtString myFederateName;
00194 DtString myFederationName;
00195 DtString myFedFile;
00196 #if DtHLA_1516_EVOLVED
00197 DtString myFederateType;
00198 std::vector<DtString> myFomModules;
00199 DtString myMim;
00200 #endif
00201 DtBaseFomDesc* myFomDescription;
00202 std::vector<DtString> myObjectSubscriptionList;
00203 std::vector<DtString> myInteractionSubscriptionList;
00204 bool myIsTimeConstrainedFlag;
00205 bool myIsTimeRegulatingFlag;
00206 double myLookAhead;
00207 bool myTimeManagedEnabledFlag;
00208 double myDrainInputMaxTime;
00209 double myDrainInputMinTime;
00210 bool myIgnoreAdvisories;
00211 bool myUseEmptyFomMapper;
00212
00213 bool myTimeConstrainedRecording;
00214 bool myTimeRegulatingRecording;
00215 bool myTimeConstrainedPlayback;
00216 bool myTimeRegulatingPlayback;
00217
00218 };
00219
00220 }
00221
00222 #endif
00223
00224 #endif