10 #ifndef lgrHlaSimInterface_H_
11 #define lgrHlaSimInterface_H_
21 #include <vlutil/vlString.h>
29 class DtLgrHlaSimDriver;
30 class DtLgrHlaCommandFactory;
31 class DtLgrDisEntityTypeManager;
32 class DtLgrHlaConfigData;
38 class DT_DLL_LGRSIM DtLgrHlaSimInterface :
public DtLgrSimInterface
42 typedef DtLgrHlaCommandFactory Factory;
45 static DtLgrHlaSimInterface* create(DtLogger&);
48 static DtLgrSimInterface* createBase(DtLogger&);
52 static DtLgrHlaSimInterface* createNonThreadsafe(DtLogger& logger,
53 const DtLgrHlaSimDriver& driver);
57 virtual ~DtLgrHlaSimInterface();
60 virtual void setConnectionParametersHLA(
61 const DtString& federateType,
62 const DtString& federationName,
63 const DtString& fedFile,
64 bool ignoreAdvisories,
double fomVersion,
int fomRevision,
65 bool useMatrexFom,
const DtString& matrexFomMapperData,
66 const DtString& fomMapper,
const DtString& fomMapperData,
bool useEmptyFomMapper)
const;
69 virtual void setConnectionParametersHLAe(
70 const DtString& federateName,
71 const DtString& federateType,
72 const DtString& federationName,
73 const DtString& fedFile,
74 const std::vector<DtString>& fomModules,
76 bool ignoreAdvisories,
double fomVersion,
int fomRevision,
77 bool useMatrexFom,
const DtString& matrexFomMapperData,
78 const DtString& fomMapper,
const DtString& fomMapperData,
bool useEmptyFomMapper)
const;
81 virtual void setSiteApp(
int siteId,
int appNumber)
const;
84 virtual void setSubscriptionLists(
const std::vector<DtString>& objectClasses,
85 const std::vector<DtString>& interactionClasses)
const;
88 virtual void addTrafficAnalyzerFilter(
DtHlaTAFilter* filter)
const;
91 virtual void removeTrafficAnalyzerFilter(
DtHlaTAFilter* filter)
const;
97 virtual void getLoggerName(DtString& name)
const;
100 virtual const DtString& federateType()
const;
103 virtual const DtString& federationName()
const;
106 virtual const DtString& fedFile()
const;
109 virtual bool ignoreAdvisories()
const;
112 virtual bool saveTrafficAnalyzerConfigurationEnabled()
const;
115 virtual void enableSaveTrafficAnalyzerConfiguration(
bool enable)
const;
118 virtual bool trafficAnalyzerEnabled()
const;
121 virtual void enableTrafficAnalyzer(
bool enable)
const;
124 virtual bool requestUpdatesEnabled()
const;
127 virtual void enableRequestUpdates(
bool enable)
const;
130 virtual bool sendOnlyUpdatedValuesEnabled()
const;
133 virtual void enableSendOnlyUpdatedValues(
bool enable)
const;
136 virtual bool passiveSubscriptionEnabled()
const;
139 virtual void enablePassiveSubscription(
bool enable)
const;
142 virtual double fomVersion()
const;
145 virtual int fomRevision()
const;
148 virtual bool useMatrexFomMapper()
const;
151 virtual const DtString& matrexFomMapperData()
const;
154 virtual const DtString& fomMapper()
const;
157 virtual const DtString& fomMapperData()
const;
160 virtual bool useEmptyFomMapper()
const;
163 virtual const DtString& federateName()
const;
166 virtual const std::vector<DtString>& fomModules()
const;
169 virtual const DtString& mim()
const;
172 virtual const DtBaseFomDesc* fomDescription()
const;
175 virtual const std::vector<DtString>& objectSubscriptionList()
const;
178 virtual const std::vector<DtString>& interactionSubscriptionList()
const;
181 virtual const bool isTimeConstrained()
const;
184 virtual const bool isTimeRegulating()
const;
187 virtual const double lookAhead()
const;
190 virtual bool timeManagementEnabled()
const;
193 virtual double drainInputMaxTime()
const;
196 virtual double drainInputMinTime()
const;
199 virtual void setDrainInputSettings(
double maxTime,
double minTime)
const;
202 virtual void setTimeManagementSettings(
bool constrainedRecording,
203 bool constrainedPlayback,
bool regulatingRecording,
bool regulatingPlayback,
204 double lookahead)
const;
207 virtual bool timeConstrainedRecording()
const;
210 virtual bool timeConstrainedPlayback()
const;
213 virtual bool timeRegulatingRecording()
const;
216 virtual bool timeRegulatingPlayback()
const;
219 virtual void setEntityTypeManager(
const DtLgrDisEntityTypeManager& mgr)
const;
222 virtual const DtLgrDisEntityTypeManager* entityTypeManager()
const;
225 virtual bool connectionSettingsMatchInputFile( DtString& filename );
228 virtual void useRecommendedSettings();
231 virtual void stripPathFromFomModules();
236 DtLgrHlaSimInterface(DtLogger& logger,
const DtLgrHlaSimDriver& driver);
240 void (DtLgrHlaSimInterface::*
function)(
DtResponse));
245 void connectionParametersHLAChanged(
DtResponse);
246 void connectionParametersHLAeChanged(
DtResponse);
250 void timeManagementSettingsChanged(
DtResponse);
251 void timeManagementEnabledChanged(
DtResponse);
253 void ignoreAdvisoriesChanged(
DtResponse response);
254 void trafficAnalyzerChanged(
DtResponse response);
255 void saveTrafficAnalyzerConfigurationChanged(
DtResponse response);
256 void entityTypeManagerChanged(
DtResponse response);
257 void requestUpdatesChanged(
DtResponse response);
258 void sendOnlyUpdatedValuesChanged(
DtResponse response);
259 void passiveSubscriptionChanged(
DtResponse response);
266 DtString myFomMapper;
267 DtString myMatrexFomMapperData;
268 DtString myFomMapperData;
269 DtString myFederateType;
270 DtString myFederationName;
272 DtString myFederateName;
273 std::vector<DtString> myFomModules;
275 DtBaseFomDesc* myFomDescription;
278 std::vector<DtString> myObjectSubscriptionList;
279 std::vector<DtString> myInteractionSubscriptionList;
280 bool myIsTimeConstrainedFlag;
281 bool myIsTimeRegulatingFlag;
283 bool myTimeManagedEnabledFlag;
284 double myDrainInputMaxTime;
285 double myDrainInputMinTime;
286 bool myIgnoreAdvisories;
287 bool myTrafficAnalyzerEnabled;
288 bool mySaveTrafficAnalyzerConfigurationEnabled;
289 bool myUseEmptyFomMapper;
290 bool myUseMatrexFomMapper;
291 bool myRequestUpdates;
292 bool mySendOnlyUpdatedValues;
293 bool myPassiveSubscription;
295 bool myTimeConstrainedRecording;
296 bool myTimeRegulatingRecording;
297 bool myTimeConstrainedPlayback;
298 bool myTimeRegulatingPlayback;
300 DtLgrDisEntityTypeManager* myEntityTypeManager;
302 DtLgrHlaConfigData myHlaConfigData;