10 #ifndef lgrHlaSimManager_H_
11 #define lgrHlaSimManager_H_
22 #if DtHLA_1516_EVOLVED
23 #include <RTI/time/HLAfloat64Time.h>
24 #include <RTI/time/HLAfloat64Interval.h>
26 #include <RTI/logicalTimeImpl.h>
27 #include <RTI/logicalTimeIntervalImpl.h>
33 #include <vl/rtiNamespace.h>
34 #include <vl/geodeticRegion.h>
40 class DtExerciseConnInitializer;
42 class DtHlaObjectFactory;
44 class DtStateRepository;
48 namespace MAKTrafficClientServerExConn
50 class DtServerExerciseConnection;
56 class DtLgrOnlineFomDesc;
58 class DtMessageBuffer;
59 class DtLgrHlaMessageState;
60 class DtLgrHlaSimOutput;
61 class DtLgrHlaSimInput;
62 class DtLgrHlaTimeProvider;
63 class DtLgrHlaSimDriver;
64 class DtLgrFomWithRegions;
100 virtual bool isConnected()
const;
103 virtual bool isConnectionOk()
const;
106 virtual void setSubscriptionListToAll();
109 virtual void setObjectSubscriptionList(
const std::vector<DtString>& objectClasses);
112 virtual void setInteractionSubscriptionList(
const std::vector<DtString>& interactionClasses);
121 virtual std::vector<DtString> objectSubscriptionList()
const;
124 virtual std::vector<DtString> interactionSubscriptionList()
const;
127 virtual void subscribeToData();
130 virtual void unsubscribeToData();
133 virtual void addTrafficAnalyzerFilter(
DtHlaTAFilter* taFilter);
136 virtual void removeTrafficAnalyzerFilter(
DtHlaTAFilter* taFilter);
140 virtual bool evaluateTrafficAnalyzerFilters(
141 const DtStateRepository& stateRep,
const DtHlaObject& obj);
145 virtual bool evaluateTrafficAnalyzerFilters(
const DtInteraction& interaction);
202 virtual bool connect(DtExerciseConnInitializer& initializer,
DtString& failureReason);
208 virtual void disconnect();
213 virtual bool ignoreAdvisories()
const;
216 virtual void setDrainInputMaxTime(
double maxTime);
219 virtual void setDrainInputMinTime(
double minTime);
222 virtual double drainInputMaxTime()
const;
225 virtual double drainInputMinTime()
const;
228 virtual void setPassiveSubscription(
bool ignore);
231 virtual bool passiveSubscription()
const;
234 virtual void setDdmEnabled(
bool enableDdm );
237 virtual bool ddmEnabled()
const;
240 virtual void setTrafficAnalyzerEnabled(
bool enableTrafficAnalyzer );
243 virtual bool trafficAnalyzerEnabled()
const;
246 virtual void setSendOnlyUpdatedValues(
bool updatesOnly);
248 virtual bool sendOnlyUpdatedValues()
const;
256 virtual DtHlaObjectFactory* defaultObjectFactory();
259 virtual void setTimeManagementSettings(
bool constrainOnRecord,
260 bool constrainOnPlayback,
bool regulateOnRecord,
bool regulateOnPlayback,
261 double lookAheadTime);
264 virtual bool isTimeManagementEnabled()
const;
269 virtual bool enableTimeConstrained();
272 virtual bool testTimeManagement();
277 virtual bool disableTimeConstrained();
280 virtual bool isTimeConstrained()
const;
285 virtual bool enableTimeRegulating(
double lookAheadInterval);
290 virtual bool disableTimeRegulating();
293 virtual bool isTimeRegulating()
const;
296 virtual void registerTimeAdvanceGrant();
299 virtual void unregisterTimeAdvanceGrant();
303 virtual double requestTimeAdvance();
306 virtual double requestAdvanceToNextEvent();
309 virtual bool isTimeAdvanceGrantRegistered()
const;
312 virtual double lookAheadTime()
const;
317 virtual double workingLookAheadTime()
const;
320 virtual bool constrainOnRecord()
const;
323 virtual bool constrainOnPlayback()
const;
326 virtual bool regulateOnRecord()
const;
329 virtual bool regulateOnPlayback()
const;
335 virtual double fedTime()
const;
338 virtual double requestedTime()
const;
341 virtual double initialFedTime()
const;
344 virtual double timeAdvanced()
const;
347 virtual bool isTimeAdvancing()
const;
350 virtual bool isRequestingNextEvent()
const;
353 virtual bool isRequestingTimeAdvance()
const;
356 virtual void setDisableTimeManagementTest(
bool disableTest);
363 virtual void setAllowUnsubscribes(
bool allowUnsubscribe);
366 virtual bool allowUnsubscribes()
const;
371 virtual const DtString& dynamicNamePrefix()
const;
374 virtual void setDynamicNamePrefix(
const DtString& dynamicNamePrefix);
384 virtual bool testDdm()
const;
389 virtual bool addPlaybackRegionSetForObjectName(
const DtString& objectName,
const DtString& regionSetName);
392 virtual void removePlaybackRegionSetForObjectName(
const DtString& objectName);
398 virtual unsigned int getPlaybackRegionSetForObjectName(
DtString objectName,
399 DtDDMRegionSet& regionSet,
bool cacheRegions=
true);
404 virtual bool addPlaybackRegionSetForInteractionClass(
const DtString& className,
const DtString& regionSetName);
407 virtual void removePlaybackRegionSetForInteractionClass(
const DtString& className);
412 virtual unsigned int getPlaybackRegionSetForInteractionClass(
DtString className,
413 DtDDMRegionSet& regionSet,
bool cacheRegions=
true);
425 virtual void setConfigurationFileName(
const DtString& filename);
443 virtual bool playbackRegionDynamicAssociationEnabled()
const;
446 virtual void setPlaybackRegionDynamicAssociationEnabled(
bool val);
449 virtual bool playbackRegionDynamicExtentsEnabled()
const;
452 virtual void setPlaybackRegionDynamicExtentsEnabled(
bool val);
455 virtual bool recordConveyedRegionsEnabled()
const;
458 virtual void setRecordConveyedRegionsEnabled(
bool val);
461 virtual bool requestUpdatesEnabled()
const;
464 virtual void setRequestUpdatesEnabled(
bool val);
467 virtual bool subscribeUnspecifiedAttributesEnabled()
const;
470 virtual void setSubscribeUnspecifiedAttributesEnabled(
bool val);
473 virtual bool playbackWithoutRegionsEnabled()
const;
476 virtual void setPlaybackWithoutRegionsEnabled(
bool val);
479 virtual bool subscribeToAllClassesEnabled()
const;
482 virtual void setSubscribeToAllClassesEnabled(
bool val);
492 virtual bool getSubscribeRegionSetForObjectClass(
const DtString& classname, DtDDMRegionSet& regionSet)
const;
497 virtual bool getSubscribeRegionSetForInteractionClass(
const DtString& classname, DtDDMRegionSet& regionSet)
const;
504 virtual bool getGlobalObjectRegionSet(
const DtString& className, DtDDMRegionSet& regionSet);
509 virtual bool getGlobalInteractionRegionSet(
const DtString& className, DtDDMRegionSet& regionSet);
514 virtual int drainInput();
515 virtual int drainInput(DtTime maxTime, DtTime minTime);
518 #if DtHLA_1516_EVOLVED
519 typedef RTI::LogicalTime
RtiTime;
536 virtual void timeAdvanceGrant(
const RtiTime&);
537 virtual void timeConstrainedEnable(
const RtiTime&);
538 virtual void timeRegulationEnable(
const RtiTime&);
540 virtual bool invokeEnableTimeConstrained(
bool checkLongOperation,
bool postWarnings);
541 virtual bool invokeFlushQueue(
RtiTimeImpl& newTime);
542 virtual bool invokeQueryMinNextEventTime(
RtiTimeImpl& nextTime);
543 virtual bool invokeNextMessageRequest(
RtiTimeImpl& nextTime,
bool available);
544 virtual bool invokeTimeAdvanceRequest(
RtiTimeImpl& nextTime,
bool available);
545 virtual void initializeFederationTime();
546 virtual bool invokeChangeLookAheadTime(
double time);
552 virtual void setObjectClassSubscriptionState(
const DtString& name,
const DtDDMRegionSet& regionset,
bool subscribeToClass);
555 virtual void setInteractionClassSubscriptionState(
const DtString& name,
const DtDDMRegionSet& regionset,
bool subscribeToClass);
559 virtual void subscribeObjectClasses(
const std::set<DtString>& objectClasses,
564 virtual void subscribeInteractionClasses(
const std::set<DtString>& interactionClasses,
const DtSubscriptionListFile& sublist);
566 virtual void rtiErrorCb(
const char* label);
570 static void timeAdvanceGrantCb(
const RtiTime&,
void* simMan);
571 static void timeConstrainedEnableCb(
const RtiTime&,
void* simMan);
572 static void timeRegulationEnableCb(
const RtiTime&,
void* simMan);
573 static void rtiErrorCb(
const char* label,
void* simMan);
DtNameRegionMap myObjectRegions
Definition: lgrHlaSimManager.h:684
DtString myRtiErrorMessage
Warning label that come with the error.
Definition: lgrHlaSimManager.h:646
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
LogicalTimeImpl RtiTimeImpl
Definition: lgrHlaSimManager.h:526
A Time provider that supports Wall clock time and time management.
Definition: lgrHlaTimeProvider.h:24
Contains MAKLogger::DtLgrBaseSimManager class.
double myWorkingLookAhead
Definition: lgrHlaSimManager.h:666
bool myRtiError
True when there has been a RTI connection error.
Definition: lgrHlaSimManager.h:643
bool myPlaybackRegionDynamicAssociationEnabled
Control whether an object's playback region associations can change (versus fixed at time publisher i...
Definition: lgrHlaSimManager.h:613
bool mySendOnlyUpdatedValues
Control whether to send only updated values.
Definition: lgrHlaSimManager.h:635
Definition: serverExerciseConnection.h:34
bool myIsDDMEnabled
Control whether DDM is used for record or playback.
Definition: lgrHlaSimManager.h:600
bool myConstrainOnRecord
Definition: lgrHlaSimManager.h:660
DtInt64 DtFilePosition
The position in a file, stored as a 64bit unsigned integer.
Definition: filePosition.h:18
Definition: lgrHlaSimManager.h:70
Definition: lgrHlaSimManager.h:78
DtPlaybackRegionMode
The modes for playback using regions.
Definition: lgrHlaSimManager.h:67
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
DtHlaObjectFactory * myDefaultObjectFactory
Default object factory.
Definition: lgrHlaSimManager.h:583
bool myRequestingNextEvent
Definition: lgrHlaSimManager.h:658
bool mySubscribeToAllClassesEnabled
Control whether subscribe to all classes by default.
Definition: lgrHlaSimManager.h:629
HLA specific driver for controlling the simulation.
Definition: lgrHlaSimDriver.h:36
Hla specific simulation output responsible for sending messages converted from packets.
Definition: hlaSimOutput.h:43
Contains MAKLogger::DtSubscriptionListFile class.
An online fom description that has access to the RTI Ambassidor.
Definition: onlineFomDesc.h:34
DtObjectPublisher *( DtPublisherCreator)()
Definition: lgrHlaSimManager.h:210
double myRequestedTime
Definition: lgrHlaSimManager.h:655
Definition: lgrHlaSimManager.h:69
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
DtLgrHlaSimInput * myInput
Definition: lgrHlaSimManager.h:579
Definition: hlaTAFilter.h:15
bool myIgnoreAdvisories
Definition: lgrHlaSimManager.h:586
RTI::LogicalTime RtiTime
Definition: lgrHlaSimManager.h:524
bool myPreviousRtiError
State of error on previous tick (determines if another tick is needed before disconnect) ...
Definition: lgrHlaSimManager.h:649
const DtString & DtPlaybackRegionModeString(DtPlaybackRegionMode mode)
bool myPassiveSubscription
Definition: lgrHlaSimManager.h:587
double myDrainInputMaxTime
Definition: lgrHlaSimManager.h:669
std::set< DtHlaTAFilter * > myTrafficAnalyzerFilters
Traffic analyzer filters.
Definition: lgrHlaSimManager.h:597
bool myRecordConveyedRegionsEnabled
Control whether conveyed regions are recorded.
Definition: lgrHlaSimManager.h:619
bool myIsTimeConstrainedFlag
Definition: lgrHlaSimManager.h:589
The HLA simulation manager.
Definition: lgrHlaSimManager.h:84
LogicalTimeIntervalImpl RtiTimeIntervalImpl
Definition: lgrHlaSimManager.h:527
bool myRequestingTimeAdvance
Definition: lgrHlaSimManager.h:657
double myDrainInputMinTime
Definition: lgrHlaSimManager.h:670
bool myRequestUpdatesEnabled
Control whether request updates are used.
Definition: lgrHlaSimManager.h:622
bool myPlaybackWithoutRegionsEnabled
Control if updates and interactions are sent if region not available.
Definition: lgrHlaSimManager.h:632
Definition: lgrHlaSimManager.h:71
DtNameRegionMap myInteractionRegions
Definition: lgrHlaSimManager.h:687
Definition: lgrHlaSimManager.h:77
DtSubscriptionListFile * mySubscriptionList
Definition: lgrHlaSimManager.h:591
double myInitialFedTime
Definition: lgrHlaSimManager.h:656
bool myConstrainOnPlayback
Definition: lgrHlaSimManager.h:661
bool mySubscribedFlag
Definition: lgrHlaSimManager.h:593
DtSubscribeRegionMode mySubscribeRegionMode
Control how subscribe regions are created (using config file, global, ...)
Definition: lgrHlaSimManager.h:609
DtLgrHlaMessageState * myMessageState
Definition: lgrHlaSimManager.h:578
Stores information about HLA logger configuration.
Definition: lgrHlaConfigData.h:20
bool myAllowUnsubscribe
Definition: lgrHlaSimManager.h:668
DtLgrHlaConfigData myConfigData
Definition: lgrHlaSimManager.h:674
bool myIsTimeRegulatingFlag
Definition: lgrHlaSimManager.h:590
double myLookAheadTime
Definition: lgrHlaSimManager.h:665
DtLgrHlaSimOutput * myOutput
Definition: lgrHlaSimManager.h:580
HLA Specific State.
Definition: hlaMessageState.h:34
bool myRegulateOnRecord
Definition: lgrHlaSimManager.h:662
class DT_DLL_MATREX_TSPI_FOM_MAP DtInteraction
Definition: matrexTspiTagModifier.h:20
bool myTimeAdvanceGrantRegisterFlag
Definition: lgrHlaSimManager.h:588
std::map< DtString, DtDDMRegionSet > DtNameRegionMap
Definition: lgrHlaSimManager.h:676
Shared implementation of the Sim Manager.
Definition: lgrBaseSimManager.h:29
double myEpsilon
Definition: lgrHlaSimManager.h:654
The abstract interface which defines the output to a simulation.
Definition: lgrSimOutput.h:26
RtiTimeIntervalImpl * myTimeAdvanced
Definition: lgrHlaSimManager.h:653
bool myPlaybackRegionDynamicExtentsEnabled
Control whether playback region extents can change after the region is first created.
Definition: lgrHlaSimManager.h:616
DtLgrFomWithRegions * myFomWithRegions
Definition: lgrHlaSimManager.h:689
DtSubscriptionListFile * myPublicationList
Definition: lgrHlaSimManager.h:592
DtLgrOnlineFomDesc * myFomDescription
Definition: lgrHlaSimManager.h:585
DtPlaybackRegionMode myPlaybackRegionMode
Control how playback regions are created (using recorded data, conveyed regions, ...)
Definition: lgrHlaSimManager.h:606
DtLgrHlaSimDriver * mySimDriver
Definition: lgrHlaSimManager.h:577
The Abstract message state maintained by the logger.
Definition: messageState.h:33
DtLogger provides the core system structure and controls the execution model for the underlying objec...
Definition: logger.h:35
DtNameRegionMap myGlobalRegions
Definition: lgrHlaSimManager.h:681
const DtString & DtSubscribeRegionModeString(DtSubscribeRegionMode mode)
bool myTimeManagementEnabledFlag
Definition: lgrHlaSimManager.h:664
DtLgrHlaTimeProvider * myHlaTimeProvider
Definition: lgrHlaSimManager.h:594
Contains MAKLogger::DtLgrHlaConfigData class.
The subscription list file allow reading and writing of subscription list data to and from a file...
Definition: subscriptionListFile.h:26
bool mySubscribeUnspecifiedAttributesEnabled
Control whether unspecified attributes are subscribed using DM when subscription is performed using D...
Definition: lgrHlaSimManager.h:626
bool myTrafficAnalyzerEnabled
Control whether the traffic analyzer is enabled.
Definition: lgrHlaSimManager.h:603
RTI::LogicalTimeInterval RtiTimeInterval
Definition: lgrHlaSimManager.h:525
This class extends DtFom to include support for receiving and reporting information about classes...
Definition: lgrFomWithRegions.h:24
Class responsible for message Output to a file.
Definition: lgrFileOutput.h:25
DtString myDynamicNamePrefix
Definition: lgrHlaSimManager.h:672
bool myRegulateOnPlayback
Definition: lgrHlaSimManager.h:663
RtiTimeImpl * myFederationTime
Definition: lgrHlaSimManager.h:652
bool myDisableTimeManagementTesting
Definition: lgrHlaSimManager.h:667
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
DtSubscribeRegionMode
The modes for subscribing using regions.
Definition: lgrHlaSimManager.h:75
Definition: lgrHlaSimManager.h:79