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);
185 virtual bool connect(DtExerciseConnInitializer& initializer);
191 virtual void disconnect();
196 virtual bool ignoreAdvisories()
const;
199 virtual void setDrainInputMaxTime(
double maxTime);
202 virtual void setDrainInputMinTime(
double minTime);
205 virtual double drainInputMaxTime()
const;
208 virtual double drainInputMinTime()
const;
211 virtual void setPassiveSubscription(
bool ignore);
214 virtual bool passiveSubscription()
const;
217 virtual void setDdmEnabled(
bool enableDdm );
220 virtual bool ddmEnabled()
const;
223 virtual void setTrafficAnalyzerEnabled(
bool enableTrafficAnalyzer );
226 virtual bool trafficAnalyzerEnabled()
const;
233 virtual DtHlaObjectFactory* defaultObjectFactory();
236 virtual void setTimeManagementSettings(
bool constrainOnRecord,
237 bool constrainOnPlayback,
bool regulateOnRecord,
bool regulateOnPlayback,
238 double lookAheadTime);
241 virtual bool isTimeManagementEnabled()
const;
246 virtual bool enableTimeConstrained();
249 virtual bool testTimeManagement();
254 virtual bool disableTimeConstrained();
257 virtual bool isTimeConstrained()
const;
262 virtual bool enableTimeRegulating(
double lookAheadInterval);
267 virtual bool disableTimeRegulating();
270 virtual bool isTimeRegulating()
const;
273 virtual void registerTimeAdvanceGrant();
276 virtual void unregisterTimeAdvanceGrant();
280 virtual double requestTimeAdvance();
283 virtual double requestAdvanceToNextEvent();
287 virtual bool changeLookAheadTime(
double time) ;
290 virtual bool isTimeAdvanceGrantRegistered()
const;
295 virtual bool nextMessageRequest(
bool available=
false);
298 virtual double lookAheadTime()
const;
301 virtual bool constrainOnRecord()
const;
304 virtual bool constrainOnPlayback()
const;
307 virtual bool regulateOnRecord()
const;
310 virtual bool regulateOnPlayback()
const;
313 virtual double fedTime()
const;
316 virtual double requestedTime()
const;
319 virtual double initialFedTime()
const;
322 virtual bool isTimeAdvancing()
const;
325 virtual bool isRequestingNextEvent()
const;
328 virtual bool isRequestingTimeAdvance()
const;
331 virtual void setDisableTimeManagementTest(
bool disableTest);
334 virtual void setAllowUnsubscribes(
bool allowUnsubscribe);
337 virtual bool allowUnsubscribes()
const;
342 virtual const DtString& dynamicNamePrefix()
const;
345 virtual void setDynamicNamePrefix(
const DtString& dynamicNamePrefix);
355 virtual bool testDdm()
const;
360 virtual bool addPlaybackRegionSetForObjectName(
const DtString& objectName,
const DtString& regionSetName);
363 virtual void removePlaybackRegionSetForObjectName(
const DtString& objectName);
369 virtual unsigned int getPlaybackRegionSetForObjectName(
DtString objectName,
370 DtDDMRegionSet& regionSet,
bool cacheRegions=
true);
375 virtual bool addPlaybackRegionSetForInteractionClass(
const DtString& className,
const DtString& regionSetName);
378 virtual void removePlaybackRegionSetForInteractionClass(
const DtString& className);
383 virtual unsigned int getPlaybackRegionSetForInteractionClass(
DtString className,
384 DtDDMRegionSet& regionSet,
bool cacheRegions=
true);
396 virtual void setConfigurationFileName(
const DtString& filename);
414 virtual bool playbackRegionDynamicAssociationEnabled()
const;
417 virtual void setPlaybackRegionDynamicAssociationEnabled(
bool val);
420 virtual bool playbackRegionDynamicExtentsEnabled()
const;
423 virtual void setPlaybackRegionDynamicExtentsEnabled(
bool val);
426 virtual bool recordConveyedRegionsEnabled()
const;
429 virtual void setRecordConveyedRegionsEnabled(
bool val);
432 virtual bool requestUpdatesEnabled()
const;
435 virtual void setRequestUpdatesEnabled(
bool val);
438 virtual bool subscribeUnspecifiedAttributesEnabled()
const;
441 virtual void setSubscribeUnspecifiedAttributesEnabled(
bool val);
444 virtual bool playbackWithoutRegionsEnabled()
const;
447 virtual void setPlaybackWithoutRegionsEnabled(
bool val);
450 virtual bool subscribeToAllClassesEnabled()
const;
453 virtual void setSubscribeToAllClassesEnabled(
bool val);
463 virtual bool getSubscribeRegionSetForObjectClass(
const DtString& classname, DtDDMRegionSet& regionSet)
const;
468 virtual bool getSubscribeRegionSetForInteractionClass(
const DtString& classname, DtDDMRegionSet& regionSet)
const;
475 virtual bool getGlobalObjectRegionSet(
const DtString& className, DtDDMRegionSet& regionSet);
480 virtual bool getGlobalInteractionRegionSet(
const DtString& className, DtDDMRegionSet& regionSet);
484 virtual int drainInput(DtTime maxTime = -1, DtTime minTime = 0.0);
495 virtual void timeAdvanceGrant(
const RtiTime&);
496 virtual void timeConstrainedEnable(
const RtiTime&);
497 virtual void timeRegulationEnable(
const RtiTime&);
499 virtual void initializeFederationTime();
503 virtual void setObjectClassSubscriptionState(
const DtString& name,
const DtDDMRegionSet& regionset,
bool subscribeToClass);
506 virtual void setInteractionClassSubscriptionState(
const DtString& name,
const DtDDMRegionSet& regionset,
bool subscribeToClass);
510 virtual void subscribeObjectClasses(
const std::set<DtString>& objectClasses,
515 virtual void subscribeInteractionClasses(
const std::set<DtString>& interactionClasses,
const DtSubscriptionListFile& sublist);
519 static void timeAdvanceGrantCb(
const RtiTime&,
void* simMan);
520 static void timeConstrainedEnableCb(
const RtiTime&,
void* simMan);
521 static void timeRegulationEnableCb(
const RtiTime&,
void* simMan);