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 setSubscriptionLists(
const std::vector<DtString>& objectClasses,
82 const std::vector<DtString>& interactionClasses)
const;
85 virtual void addTrafficAnalyzerFilter(
DtHlaTAFilter* filter)
const;
88 virtual void removeTrafficAnalyzerFilter(
DtHlaTAFilter* filter)
const;
94 virtual void getLoggerName(DtString& name)
const;
97 virtual const DtString& federateType()
const;
100 virtual const DtString& federationName()
const;
103 virtual const DtString& fedFile()
const;
106 virtual bool ignoreAdvisories()
const;
109 virtual bool saveTrafficAnalyzerConfigurationEnabled()
const;
112 virtual void enableSaveTrafficAnalyzerConfiguration(
bool enable)
const;
115 virtual bool trafficAnalyzerEnabled()
const;
118 virtual void enableTrafficAnalyzer(
bool enable)
const;
121 virtual bool requestUpdatesEnabled()
const;
124 virtual void enableRequestUpdates(
bool enable)
const;
127 virtual bool sendOnlyUpdatedValuesEnabled()
const;
130 virtual void enableSendOnlyUpdatedValues(
bool enable)
const;
133 virtual bool passiveSubscriptionEnabled()
const;
136 virtual void enablePassiveSubscription(
bool enable)
const;
139 virtual double fomVersion()
const;
142 virtual int fomRevision()
const;
145 virtual bool useMatrexFomMapper()
const;
148 virtual const DtString& matrexFomMapperData()
const;
151 virtual const DtString& fomMapper()
const;
154 virtual const DtString& fomMapperData()
const;
157 virtual bool useEmptyFomMapper()
const;
160 virtual const DtString& federateName()
const;
163 virtual const std::vector<DtString>& fomModules()
const;
166 virtual const DtString& mim()
const;
169 virtual const DtBaseFomDesc* fomDescription()
const;
172 virtual const std::vector<DtString>& objectSubscriptionList()
const;
175 virtual const std::vector<DtString>& interactionSubscriptionList()
const;
178 virtual const bool isTimeConstrained()
const;
181 virtual const bool isTimeRegulating()
const;
184 virtual const double lookAhead()
const;
187 virtual bool timeManagementEnabled()
const;
190 virtual double drainInputMaxTime()
const;
193 virtual double drainInputMinTime()
const;
196 virtual void setDrainInputSettings(
double maxTime,
double minTime)
const;
199 virtual void setTimeManagementSettings(
bool constrainedRecording,
200 bool constrainedPlayback,
bool regulatingRecording,
bool regulatingPlayback,
201 double lookahead)
const;
204 virtual bool timeConstrainedRecording()
const;
207 virtual bool timeConstrainedPlayback()
const;
210 virtual bool timeRegulatingRecording()
const;
213 virtual bool timeRegulatingPlayback()
const;
216 virtual void setEntityTypeManager(
const DtLgrDisEntityTypeManager& mgr)
const;
219 virtual const DtLgrDisEntityTypeManager* entityTypeManager()
const;
222 virtual bool connectionSettingsMatchInputFile( DtString& filename );
225 virtual void useRecommendedSettings();
228 virtual void stripPathFromFomModules();
233 DtLgrHlaSimInterface(DtLogger& logger,
const DtLgrHlaSimDriver& driver);
237 void (DtLgrHlaSimInterface::*
function)(
DtResponse));
242 void connectionParametersHLAChanged(
DtResponse);
243 void connectionParametersHLAeChanged(
DtResponse);
246 void timeManagementSettingsChanged(
DtResponse);
247 void timeManagementEnabledChanged(
DtResponse);
249 void ignoreAdvisoriesChanged(
DtResponse response);
250 void trafficAnalyzerChanged(
DtResponse response);
251 void saveTrafficAnalyzerConfigurationChanged(
DtResponse response);
252 void entityTypeManagerChanged(
DtResponse response);
253 void requestUpdatesChanged(
DtResponse response);
254 void sendOnlyUpdatedValuesChanged(
DtResponse response);
255 void passiveSubscriptionChanged(
DtResponse response);
262 DtString myFomMapper;
263 DtString myMatrexFomMapperData;
264 DtString myFomMapperData;
265 DtString myFederateType;
266 DtString myFederationName;
268 DtString myFederateName;
269 std::vector<DtString> myFomModules;
271 DtBaseFomDesc* myFomDescription;
272 std::vector<DtString> myObjectSubscriptionList;
273 std::vector<DtString> myInteractionSubscriptionList;
274 bool myIsTimeConstrainedFlag;
275 bool myIsTimeRegulatingFlag;
277 bool myTimeManagedEnabledFlag;
278 double myDrainInputMaxTime;
279 double myDrainInputMinTime;
280 bool myIgnoreAdvisories;
281 bool myTrafficAnalyzerEnabled;
282 bool mySaveTrafficAnalyzerConfigurationEnabled;
283 bool myUseEmptyFomMapper;
284 bool myUseMatrexFomMapper;
285 bool myRequestUpdates;
286 bool mySendOnlyUpdatedValues;
287 bool myPassiveSubscription;
289 bool myTimeConstrainedRecording;
290 bool myTimeRegulatingRecording;
291 bool myTimeConstrainedPlayback;
292 bool myTimeRegulatingPlayback;
294 DtLgrDisEntityTypeManager* myEntityTypeManager;
296 DtLgrHlaConfigData myHlaConfigData;