MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrSimDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <lgrCore/lgrCore.h>
13 #include <lgrCore/lgrDriver.h>
15 #include <map>
16 #include <vlutil/vlTime.h>
17 
18 class DtExerciseConnInitializer;
19 
20 namespace MAKLogger
21 {
22  class DtLgrSimCommandFactory;
23  class DtLgrSimInterface;
24  class DtLgrSimManager;
25  class DtLgrSystemDriver;
26  class DtLgrPacketFilter;
27  class DtLgrEntityIdFilter;
28  class DtLgrMarkingFilter;
29  class DtLgrVRFMessageFilter;
30  class DtMessagePipeline;
31  class DtLgrPlaybackDriver;
32  class DtLgrRecordDriver;
33 
38  {
39  public:
42 
44  typedef std::pair<double, bool> HeartbeatTimeRecord;
45 
47  static DtLgrSimDriver* getFromLogger(const DtLogger& logger);
48 
50  DtLgrSimDriver(DtLgrSystemDriver& systemDriver);
51 
53  virtual ~DtLgrSimDriver();
54 
56  virtual void tick();
57 
66  virtual bool releasePipeline();
67 
69  bool getPipeline();
70 
72  bool hasPipeline() const;
73 
75  virtual bool isConnected() const = 0;
76 
78  virtual void addPacketFilter(DtLgrPacketFilter* filter);
79 
81  virtual void removeFilter(const DtLgrPacketFilter* filter);
82 
84  virtual bool activity() const;
85 
87  virtual int filterCount() const;
88 
90  virtual const DtLgrPacketFilter* filter(int index) const;
91 
93  virtual DtLgrSystemDriver* systemDriver();
95  virtual const DtLgrSystemDriver* systemDriver() const;
97 
99  virtual DtLgrSimManager* simManager() = 0;
101  virtual const DtLgrSimManager* simManager() const = 0;
103 
105  virtual DtLgrPlaybackDriver* getPlaybackDriver(bool checkForFileOpen) const;
106 
108  virtual DtLgrRecordDriver* getRecordDriver(bool checkForFileOpen) const;
109 
111  virtual bool processRemoteControls() const;
112 
114  virtual bool recordRemoteControls() const;
115 
117  virtual bool allowAllRemoteControls() const;
118 
120  virtual bool allowRemoteDelete() const;
121 
123  virtual bool sendResponses() const;
124 
126  virtual bool crippleGui() const;
127 
129  virtual bool useLegacyPdu() const;
130 
132  virtual bool saveConnectConfiguration() const;
133 
135  virtual bool saveIndexConfiguration() const;
136 
138  virtual bool saveProtocolConfiguration() const;
139 
141  virtual bool listenWhenIdle() const;
142 
144  virtual bool staticDRAlgorithmWhenPaused() const;
145 
147  virtual void activateIdleListening();
148 
150  virtual bool isSimTimeAdjusted() const;
151 
153  virtual DtTime connectSendInterval() const;
154 
156  virtual DtTime heartbeatSendInterval() const;
157 
159  virtual bool useSimChannel() const;
160 
162  virtual bool useBackChannel() const;
163 
165  virtual const DtString& backChannelAddress() const;
166 
168  virtual int backChannelPort() const;
169 
171  virtual const DtString& backChannelInterface() const;
172 
174  virtual bool scaleAttributes() const;
175 
177  virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& heartbeatIntervals() const;
178 
180  virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& timeoutIntervals() const;
181 
183  virtual void updateEntityTracker(const DtString& tracker);
184 
186  virtual DtLgrEntityTracker* entityTracker();
187 
188  virtual void addTemporaryTrackedEntity(const DtString& name);
189 
190  virtual void addTemporaryTrackedMarking(const DtString& marking);
191 
192  protected:
193 
195  virtual void setActivity(bool activity);
196 
198  virtual void setVRFMessageFiltering(bool filter,int lowId,int hiId);
199 
201  virtual void configureConnectionInitalizer(DtExerciseConnInitializer& connInitializer) = 0;
202 
204 
205  virtual DtResponse addFilter(const DtCommand& command);
207  virtual DtResponse connect(const DtCommand& command) = 0;
208  virtual DtResponse connectShared(const DtCommand& command) = 0;
209  virtual DtResponse disconnect(const DtCommand& command) = 0;
210  virtual DtResponse setSaveConnectConfiguration(const DtCommand& command);
211  virtual DtResponse setSaveIndexConfiguration(const DtCommand& command);
212  virtual DtResponse setSaveProtocolConfiguration(const DtCommand& command);
213  virtual DtResponse setFilterSettings(const DtCommand& command);
214  virtual DtResponse setScaleAttributes(const DtCommand& command);
215  virtual DtResponse setVRFFiltering(const DtCommand& command);
216  virtual DtResponse addFilteredEntityName(const DtCommand& command);
217  virtual DtResponse clearFilteredEntityNames(const DtCommand& command);
218  virtual DtResponse setHeartbeatIntervals(const DtCommand& command);
219  virtual DtResponse setTimeoutIntervals(const DtCommand& command);
220  virtual DtResponse addTemporaryTrackedEntity(const DtCommand& command);
221  virtual DtResponse setPlaybackFilesUseRandomAccess(const DtCommand& command);
222  virtual DtResponse setExtendedStopTimeoutInterval(const DtCommand& command);
223  virtual DtResponse setListenWhenIdle(const DtCommand& command);
224  virtual DtResponse setAdjustSimTime(const DtCommand& command);
225  virtual DtResponse setStaticDRAlgorithmWhenPaused(const DtCommand& command);
226  virtual DtResponse filterMarkings(const DtCommand& command);
228 
229  virtual DtResponse setRemoteControlSettings(const DtCommand& command);
230  virtual DtResponse setBackChannelConnection(const DtCommand& command);
231  virtual DtResponse setRemoteControlId(const DtCommand& command);
233 
234 
235 
236  protected:
237 
260 
264  };
265 
266 }
Filter that works on entity ID.
Definition: lgrEntityIdFilter.h:29
The logger command which contains the command type and its parameters.
Definition: lgrCommand.h:109
The class responsible for interfacing with the simulation in a protocol independent manner...
Definition: lgrSimInterface.h:34
bool mySaveConnectConfiguration
Definition: lgrSimDriver.h:246
DtMessagePipeline * myPipeline
Definition: lgrSimDriver.h:259
DtTime myConnectSendInterval
Definition: lgrSimDriver.h:252
Entity type filter.
Definition: lgrMarkingFilter.h:28
bool myUseSimChannel
Definition: lgrSimDriver.h:238
bool myCrippleGui
Definition: lgrSimDriver.h:244
This class provides the base interface for DtLgrCommandHandler.
Definition: lgrDriver.h:35
bool myAllowRemoteDelete
Definition: lgrSimDriver.h:242
DtTime myHeartbeatSendInterval
Definition: lgrSimDriver.h:253
DtLgrSystemDriver * myDriver
Definition: lgrSimDriver.h:258
The abstract interface for the class responsible for controlling the simulation.
Definition: lgrSimDriver.h:37
Definition: lgrVrfMessageFilter.h:17
int TrackerUpdateId
Definition: lgrEntityTracker.h:36
DtClock myTrackerUpdateClock
Definition: lgrSimDriver.h:263
bool mySaveProtocolConfiguration
Definition: lgrSimDriver.h:248
DtBoost::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:174
bool mySendResponses
Definition: lgrSimDriver.h:243
bool myUseLegacyPdu
Definition: lgrSimDriver.h:245
int myBackChannelPort
Definition: lgrSimDriver.h:251
bool myUseBackChannel
Definition: lgrSimDriver.h:239
bool myRecordRemoteControls
Definition: lgrSimDriver.h:240
DtString myBackChannelInterface
Definition: lgrSimDriver.h:250
Base interface class for packet filters.
Definition: lgrPacketFilter.h:25
The class responsible for controlling the logger playback functionality.
Definition: lgrPlaybackDriver.h:36
Implements a protocol independent Simulation manager.
Definition: lgrSimManager.h:40
Contains MAKLogger::DtLgrEntityTracker class.
The class responsible for controlling the logger recording functionality.
Definition: lgrRecordDriver.h:37
bool myAllowAllRemoteControls
Definition: lgrSimDriver.h:241
DtString myBackChannelAddress
Definition: lgrSimDriver.h:249
std::pair< double, bool > HeartbeatTimeRecord
Heartbeat time (seconds), inheritable flag (ignored in DIS)
Definition: lgrSimDriver.h:44
DtLgrSimInterface Interface
Definition: lgrSimDriver.h:41
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
Indexes packets in a file.
Definition: lgrEntityTracker.h:32
DtTime myLastEntityTrackerUpdateTime
Definition: lgrSimDriver.h:262
DtLgrSimCommandFactory Factory
Definition: lgrSimDriver.h:40
The message pipeline which takes messages from the input, passes them through the state and ultimatel...
Definition: messagePipeline.h:28
DtLogger provides the core system structure and controls the execution model for the underlying objec...
Definition: logger.h:35
bool mySaveIndexConfiguration
Definition: lgrSimDriver.h:247
bool myActivity
Definition: lgrSimDriver.h:254
DtLgrEntityTracker::TrackerUpdateId myLastEntityTrackerUpdate
Definition: lgrSimDriver.h:261
Contains MAKLogger::DtLgrCommandHandler class.
The factory responsible for creating simulation commands.
Definition: lgrSimCommandFactory.h:21
DtLgrMarkingFilter * myMarkingFilter
Definition: lgrSimDriver.h:257
DtLgrSystemDrive defines the lowest level driver which controls the logger.
Definition: lgrSystemDriver.h:43
Contains lgrCore library definitions.
DtLgrEntityIdFilter * myEntityIdFilter
Definition: lgrSimDriver.h:256
DtLgrVRFMessageFilter * myVRFMessageFilter
Definition: lgrSimDriver.h:255

Document ID: Generated on Thu Jul 14 15:45:33 EDT 2022 from SVN revision 244827
Copyright © 2021 MAK Technologies. All Rights Reserved (www.mak.com)