MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrSimManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef lgrSimManager_H_
10 #define lgrSimManager_H_
11 
12 #include <lgrCore/lgrCore.h>
13 #include <lgrUtil/filePosition.h>
14 #include <lgrCore/lgrSimDriver.h>
15 #include <vlutil/vlString.h>
16 #include <list>
18 
19 namespace MAKLogger
20 {
21 
22  class DtPacket;
23  class DtLgrPacketFilter;
24  class DtAbsoluteTime;
25  class DtLgrSimInput;
26  class DtLgrSimOutput;
27  class DtLgrFileInput;
28  class DtLgrFileOutput;
29  class DtMessageState;
30  class DtLegacyLoggerFile;
31  class DtTimeProvider;
32  class DtLgrClock;
33  class DtCheckpointPolicy;
34  class DtLgrVRFMessageFilter;
35  class DtMessageIOInfo;
36  class DtMessagePipeline;
37 
41  {
42  public:
44  virtual ~DtLgrSimManager();
45 
47  virtual bool isConnected() const = 0;
48 
50  virtual bool isConnectionOk() const = 0;
51 
53  virtual void tick() = 0;
54 
56  virtual bool scaleAttributes() const;
57 
59  virtual void setScaleAttributes(bool enable);
60 
64  virtual DtLgrFileInput* openFileForInput(const DtString& filename) const = 0;
65 
69  virtual DtLgrFileOutput* openFileForCopying(const DtString& filename,
70  const DtLgrFileInput* input) const = 0;
71 
76  virtual DtLgrFileOutput* openFileForOutput(const DtString& filename,
77  const DtString& description) const = 0;
78 
80  virtual DtLgrFileInput* openPartialFileForCopying(
81  const DtLgrFileOutput* output, DtFilePosition firstPacket,
82  DtFilePosition lastPacket) const = 0;
83 
85  virtual DtMessageState* createState() const = 0;
86 
88  virtual const DtLgrSimInput* input() const = 0;
90  virtual DtLgrSimInput* input() = 0;
91 
93  virtual const DtLgrSimOutput* output() const = 0;
95  virtual DtLgrSimOutput* output() = 0;
96 
98  virtual const DtMessageState* state() const = 0;
100  virtual DtMessageState* state() = 0;
101 
103  virtual void activateIdleListening(DtMessagePipeline* pipeLine);
104 
106  virtual void deactivateIdleListening(DtMessagePipeline* pipeLine);
107 
109 
110  virtual void setEntitiesForRefresh(const DtLgrEntityTracker::EntryHandleSet& handleSet);
111  virtual const DtLgrEntityTracker::EntryHandleSet& entitiesForRefresh() const;
112  virtual void clearEntitiesForRefresh();
114 
116  virtual void setTimeProvider(DtTimeProvider* provider);
117 
119  virtual DtTimeProvider* timeProvider();
121  virtual const DtTimeProvider* timeProvider() const;
123 
126  virtual DtAbsoluteTime simTime() const;
127 
129  virtual void setSimTime(DtAbsoluteTime simTime);
130 
132  virtual void setAdjustSimTime(bool adjustSimTime);
133 
135  virtual bool isSimTimeAdjusted() const;
136 
140  virtual DtTime adjustedSimTime(DtTime packetTime, bool includeOffset=false) const;
141 
143  virtual void setTimeJump(DtAbsoluteTime jumpTime);
144 
146  virtual void setInitialTime(DtAbsoluteTime initialTime);
147 
149  virtual bool activity() const = 0;
150 
154  virtual int remoteControlId() const;
155 
157  virtual void setRemoteControlId(int id);
158 
160  virtual void activateFilters(const DtMessageIOInfo* info);
161 
163  virtual void deactivateFilters();
164 
166  virtual bool filter(DtPacket* packet);
167 
170  virtual int addFilter(DtLgrPacketFilter* filter);
171 
175  virtual int removeFilter(const DtLgrPacketFilter* filter);
176 
178  virtual int filterCount() const;
179 
182  virtual int filterIndex(const DtLgrPacketFilter* filter) const;
183 
185  virtual DtLgrPacketFilter* filterByIndex(int index);
187  virtual const DtLgrPacketFilter* filterByIndex(int index) const;
189 
190  virtual void setHeartbeatIntervals(const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& intervals);
191  virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& heartbeatIntervals() const;
192 
193  virtual void setTimeoutIntervals(const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& intervals);
194  virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& timeoutIntervals() const;
195 
197  virtual void updateEntityTracker(const DtString& tracker);
198 
201  virtual void setAllowEntityTracking(bool trackingEnabled);
202 
204  virtual DtLgrEntityTracker* entityTracker();
205 
207  virtual const DtLgrEntityTracker* entityTracker() const;
208 
210  virtual const std::vector<DtString>& filterEntityList();
211 
212  virtual void addTemporaryTrackedEntity(const DtString& name);
213 
214  virtual void addTemporaryTrackedMarking(const DtString& marking);
215 
217  virtual void setEntityTracker(DtLgrEntityTracker* tracker);
218 
219  //Add list of entity IDs to the current filterEntityList
220  virtual void addToFilterEntityList( const std::vector<DtString>& nameList);
221 
222  virtual void setConfigurationFileName(const DtString& filename) = 0;
223 
225  virtual void initPlayback(DtLgrFileInput& input);
226 
228 
229  virtual bool playbackFilesUseRandomAccess() const;
230  virtual void setPlaybackFilesUseRandomAccess(bool val);
232 
237 
238  virtual double extendedStopTimeoutInterval() const;
239  virtual void setExtendedStopTimeoutInterval(double interval);
241 
243  virtual bool listenWhenIdle() const;
244 
246  virtual void setListenWhenIdle(bool val);
247 
249  virtual bool staticDRAlgorithmWhenPaused() const;
250 
252  virtual void setStaticDRAlgorithmWhenPaused(bool staticDRAlgorithm);
253 
254  protected:
255 
257 
265  std::vector<DtString> myFilterEntityList;
269  typedef std::list<DtLgrPacketFilter*> FilterList;
271  std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myHeartbeatIntervals;
272  std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myTimeoutIntervals;
278 
279  };
280 
281 }
282 
283 #endif
std::list< DtLgrPacketFilter * > FilterList
Definition: lgrSimManager.h:269
int myRemoteControlId
Definition: lgrSimManager.h:263
std::map< DtString, DtLgrSimDriver::HeartbeatTimeRecord > myHeartbeatIntervals
Definition: lgrSimManager.h:271
bool myStaticDRAlgorithmWhenPaused
Definition: lgrSimManager.h:277
std::vector< DtString > myFilterEntityList
Definition: lgrSimManager.h:265
DtTimeProvider * myTimeProvider
Member data.
Definition: lgrSimManager.h:258
DtInt64 DtFilePosition
The position in a file, stored as a 64bit unsigned integer.
Definition: filePosition.h:18
double myInitialTime
Definition: lgrSimManager.h:262
double myJumpAdjustment
Definition: lgrSimManager.h:261
bool myPlaybackFilesUseRandomAccess
Definition: lgrSimManager.h:273
Contains MAKLogger::DtFilePosition typedef.
std::map< DtString, DtLgrSimDriver::HeartbeatTimeRecord > myTimeoutIntervals
Definition: lgrSimManager.h:272
bool myIsTrackingEnabled
Definition: lgrSimManager.h:267
DtLgrEntityTracker * myEntityTracker
Definition: lgrSimManager.h:264
DtLgrClock * myClock
Definition: lgrSimManager.h:259
An abstract interface for message input from a file.
Definition: lgrFileInput.h:26
std::set< DtLgrEntityTracker::EntryHandle > EntryHandleSet
Definition: lgrEntityTracker.h:38
bool myScaleAttributesFlag
Definition: lgrSimManager.h:268
Contains MAKLogger::DtLgrSimDriver subclass of MAKLogger::DtLgrCommandHandler.
bool myListenWhenIdle
Definition: lgrSimManager.h:275
Base interface class for packet filters.
Definition: lgrPacketFilter.h:25
bool myAdjustSimTime
Definition: lgrSimManager.h:276
DtLgrEntityTracker::EntryHandleSet myEntitiesToRefresh
Definition: lgrSimManager.h:266
Implements a protocol independent Simulation manager.
Definition: lgrSimManager.h:40
Contains MAKLogger::DtLgrEntityTracker class.
FilterList myFilterList
Definition: lgrSimManager.h:270
A message IO info object stores information about a specific message input or output stage...
Definition: messageIoInfo.h:21
A generic packed of typed binary data.
Definition: packet.h:41
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
Indexes packets in a file.
Definition: lgrEntityTracker.h:32
class DT_DLL_LGRUTIL DtAbsoluteTime
Definition: absoluteTime.h:22
The base class to help simulation input.
Definition: lgrSimInput.h:24
The abstract interface which defines the output to a simulation.
Definition: lgrSimOutput.h:26
double myBasePacketTime
Definition: lgrSimManager.h:260
The message pipeline which takes messages from the input, passes them through the state and ultimatel...
Definition: messagePipeline.h:28
The Abstract message state maintained by the logger.
Definition: messageState.h:33
An abstract class which provides time advances used by the DtLgrClock.
Definition: lgrClock.h:23
A clock that provides current time via a time provider.
Definition: lgrClock.h:92
double myExtendedStopTimeoutInterval
Definition: lgrSimManager.h:274
Class responsible for message Output to a file.
Definition: lgrFileOutput.h:25
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
Contains lgrCore library definitions.

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)