10 #ifndef lgrHlaSimManager_H_
11 #define lgrHlaSimManager_H_
21 #include <vl/rtiNamespace.h>
22 #include <vl/geodeticRegion.h>
28 class DtExerciseConnInitializer;
30 class DtHlaObjectFactory;
32 class DtGenericStateRepository;
36 namespace MAKTrafficClientServerExConn
38 class DtServerExerciseConnection;
44 class DtLgrOnlineFomDesc;
46 class DtMessageBuffer;
47 class DtLgrHlaMessageState;
48 class DtLgrHlaSimOutput;
49 class DtLgrHlaSimInput;
50 class DtLgrHlaTimeProvider;
51 class DtLgrHlaSimDriver;
52 class DtLgrFomWithRegions;
88 virtual bool isConnected()
const;
91 virtual void setSubscriptionListToAll();
94 virtual void setObjectSubscriptionList(
const std::vector<DtString>& objectClasses);
97 virtual void setInteractionSubscriptionList(
const std::vector<DtString>& interactionClasses);
106 virtual std::vector<DtString> objectSubscriptionList()
const;
109 virtual std::vector<DtString> interactionSubscriptionList()
const;
112 virtual void subscribeToData();
115 virtual void unsubscribeToData();
118 virtual void addTrafficAnalyzerFilter(
DtHlaTAFilter* taFilter);
121 virtual void removeTrafficAnalyzerFilter(
DtHlaTAFilter* taFilter);
125 virtual bool evaluateTrafficAnalyzerFilters(
126 const DtGenericStateRepository& stateRep,
const DtHlaObject& obj);
130 virtual bool evaluateTrafficAnalyzerFilters(
const DtInteraction& interaction);
186 virtual bool connect(DtExerciseConnInitializer& initializer);
192 virtual void disconnect();
197 virtual bool ignoreAdvisories()
const;
200 virtual void setDrainInputMaxTime(
double maxTime);
203 virtual void setDrainInputMinTime(
double minTime);
206 virtual double drainInputMaxTime()
const;
209 virtual double drainInputMinTime()
const;
212 virtual void setPassiveSubscription(
bool ignore);
215 virtual bool passiveSubscription()
const;
218 virtual void setDdmEnabled(
bool enableDdm );
221 virtual bool ddmEnabled()
const;
224 virtual void setTrafficAnalyzerEnabled(
bool enableTrafficAnalyzer );
227 virtual bool trafficAnalyzerEnabled()
const;
234 virtual DtHlaObjectFactory* defaultObjectFactory();
237 virtual void setTimeManagementSettings(
bool constrainOnRecord,
238 bool constrainOnPlayback,
bool regulateOnRecord,
bool regulateOnPlayback,
239 double lookAheadTime);
242 virtual bool isTimeManagementEnabled()
const;
247 virtual bool enableTimeConstrained();
250 virtual bool testTimeManagement();
255 virtual bool disableTimeConstrained();
258 virtual bool isTimeConstrained()
const;
263 virtual bool enableTimeRegulating(
double lookAheadInterval);
268 virtual bool disableTimeRegulating();
271 virtual bool isTimeRegulating()
const;
274 virtual void registerTimeAdvanceGrant();
277 virtual void unregisterTimeAdvanceGrant();
281 virtual double requestTimeAdvance();
284 virtual double requestAdvanceToNextEvent();
288 virtual bool changeLookAheadTime(
double time) ;
291 virtual bool isTimeAdvanceGrantRegistered()
const;
296 virtual bool nextMessageRequest(
bool available=
false);
299 virtual double lookAheadTime()
const;
302 virtual bool constrainOnRecord()
const;
305 virtual bool constrainOnPlayback()
const;
308 virtual bool regulateOnRecord()
const;
311 virtual bool regulateOnPlayback()
const;
314 virtual double fedTime()
const;
317 virtual double requestedTime()
const;
320 virtual double initialFedTime()
const;
323 virtual bool isTimeAdvancing()
const;
326 virtual bool isRequestingNextEvent()
const;
329 virtual bool isRequestingTimeAdvance()
const;
332 virtual void setDisableTimeManagementTest(
bool disableTest);
335 virtual void setAllowUnsubscribes(
bool allowUnsubscribe);
338 virtual bool allowUnsubscribes()
const;
343 virtual const DtString& dynamicNamePrefix()
const;
346 virtual void setDynamicNamePrefix(
const DtString& dynamicNamePrefix);
356 virtual bool testDdm()
const;
361 virtual bool addPlaybackRegionSetForObjectName(
const DtString& objectName,
const DtString& regionSetName);
364 virtual void removePlaybackRegionSetForObjectName(
const DtString& objectName);
370 virtual unsigned int getPlaybackRegionSetForObjectName(
DtString objectName,
371 DtDDMRegionSet& regionSet,
bool cacheRegions=
true);
376 virtual bool addPlaybackRegionSetForInteractionClass(
const DtString& className,
const DtString& regionSetName);
379 virtual void removePlaybackRegionSetForInteractionClass(
const DtString& className);
384 virtual unsigned int getPlaybackRegionSetForInteractionClass(
DtString className,
385 DtDDMRegionSet& regionSet,
bool cacheRegions=
true);
397 virtual void setConfigurationFileName(
const DtString& filename);
415 virtual bool playbackRegionDynamicAssociationEnabled()
const;
418 virtual void setPlaybackRegionDynamicAssociationEnabled(
bool val);
421 virtual bool playbackRegionDynamicExtentsEnabled()
const;
424 virtual void setPlaybackRegionDynamicExtentsEnabled(
bool val);
427 virtual bool recordConveyedRegionsEnabled()
const;
430 virtual void setRecordConveyedRegionsEnabled(
bool val);
433 virtual bool requestUpdatesEnabled()
const;
436 virtual void setRequestUpdatesEnabled(
bool val);
439 virtual bool subscribeUnspecifiedAttributesEnabled()
const;
442 virtual void setSubscribeUnspecifiedAttributesEnabled(
bool val);
445 virtual bool playbackWithoutRegionsEnabled()
const;
448 virtual void setPlaybackWithoutRegionsEnabled(
bool val);
451 virtual bool subscribeToAllClassesEnabled()
const;
454 virtual void setSubscribeToAllClassesEnabled(
bool val);
464 virtual bool getSubscribeRegionSetForObjectClass(
const DtString& classname, DtDDMRegionSet& regionSet)
const;
469 virtual bool getSubscribeRegionSetForInteractionClass(
const DtString& classname, DtDDMRegionSet& regionSet)
const;
476 virtual bool getGlobalObjectRegionSet(
const DtString& className, DtDDMRegionSet& regionSet);
481 virtual bool getGlobalInteractionRegionSet(
const DtString& className, DtDDMRegionSet& regionSet);
485 virtual int drainInput(DtTime maxTime = -1, DtTime minTime = 0.0);
496 virtual void timeAdvanceGrant(
const RtiTime&);
497 virtual void timeConstrainedEnable(
const RtiTime&);
498 virtual void timeRegulationEnable(
const RtiTime&);
500 virtual void initializeFederationTime();
504 virtual void setObjectClassSubscriptionState(
const DtString& name,
const DtDDMRegionSet& regionset,
bool subscribeToClass);
507 virtual void setInteractionClassSubscriptionState(
const DtString& name,
const DtDDMRegionSet& regionset,
bool subscribeToClass);
511 virtual void subscribeObjectClasses(
const std::set<DtString>& objectClasses,
516 virtual void subscribeInteractionClasses(
const std::set<DtString>& interactionClasses,
const DtSubscriptionListFile& sublist);
520 static void timeAdvanceGrantCb(
const RtiTime&,
void* simMan);
521 static void timeConstrainedEnableCb(
const RtiTime&,
void* simMan);
522 static void timeRegulationEnableCb(
const RtiTime&,
void* simMan);