VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
backend.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/vrfutilDefines.h"
12 #include "vrfutil/rwKeyValueList.h"
13 
15 
16 #include <vl/hostStructs.h>
17 #include <vlutil/vlUtil.h>
18 #include <vlutil/vlInetAddr.h>
19 
20 class DtSimTimeReport;
21 
22 #define DtKindFromKey(key) ((key & 0XFF00) >> 8)
23 #define DtDomainFromKey(key) (key & 0x00FF)
24 #define DtKeyFromKindDomain(kind, domain) ((kind << 8) | (0x00FF & domain))
25 
27 {
47 };
48 
52 {
53 public:
54  struct SectionTime
55  {
61  };
62 
63  typedef std::map<int, SectionTime> SectionTimes;
64 
65 public:
66  enum Status
67  {
69  Unknown = 0,
70  NotLoaded = 1,
80  ImportingScenario
81  };
82 
83 public:
84  typedef std::map<short, int> ObjectCounts;
85 
87  DtBackend(const DtSimulationAddress& addr, const DtInetAddr& ipAddr, int port,
88  int state, bool isLoaded, DtTime exerciseStartTime,
89  DtTime simTime, double timeMultiplier, const DtClock* clock);
90  DtBackend(const DtSimulationAddress& addr);
91  DtBackend();
92  DtBackend(const DtBackend&);
93 
95  virtual ~DtBackend();
96 
97  DtBackend& operator=(const DtBackend&);
98 
100  virtual const DtSimulationAddress& address() const;
101 
103  virtual void printStatus();
104 
106  virtual Status status() const;
107 
109  virtual bool isInSimulatableState() const;
110 
112  virtual bool isSimulatableStatus(DtBackend::Status) const;
113 
115  virtual bool isInTransitionStatus() const;
116 
117  virtual bool isTransitionStatus(DtBackend::Status) const;
118 
120  virtual DtInetAddr inetAddress() const;
122  virtual void setInetAddress(DtInetAddr address);
123 
125  virtual unsigned int port() const;
127  virtual void setPort(unsigned int port);
128 
130  virtual int controlState() const;
132  virtual void setControlState(int controlState);
133 
135  virtual void setScenarioRunId(int);
136  virtual int scenarioRunId() const;
137 
143  virtual DtU32 scenarioCapabilities() const;
144  virtual void setScenarioCapabilities(const DtU32&);
145 
148  virtual void setAppIdRangeMax(int);
149  virtual int appIdRangeMax() const;
150 
153  virtual bool isLoaded() const;
154  virtual bool isLoadedAndCanSimulate() const;
156  virtual void setIsLoaded(bool b);
157 
159  virtual bool canSimulate() const;
160  virtual void setCanSimulate(bool);
161 
163  virtual bool loadingScenario() const;
164  virtual void setLoadingScenario(bool);
165 
167  virtual bool savingScenario() const;
168  virtual void setSavingScenario(bool);
169 
171  virtual bool importingScenario() const;
172  virtual void setImportingScenario(bool);
173 
175  virtual bool reinitializingScenario() const;
176  virtual void setReinitializingScenario(bool);
177 
179  virtual bool hostingDynamicTerrainServer() const;
180  virtual void setHostingDynamicTerrainServer(bool);
181 
183  virtual bool creatingSimulationObjectGroup() const;
184  virtual void setCreatingSimulationObjectGroup(bool);
185 
187  virtual bool closingScenario() const;
188  virtual void setClosingScenario(bool);
189 
191  virtual bool rollingBackScenario() const;
192  virtual void setRollingBackScenario(bool);
193 
195  virtual bool loadedNewScenario() const;
196  virtual void setLoadedNewScenario(bool);
197 
199  virtual const DtTime& lastResponseTime() const;
201  virtual void setLastResponseTime(const DtTime& time);
202 
204  virtual int numSections() const;
205 
208  virtual int section(int) const;
209 
211  {
212  return mySectionTimes;
213  }
214 
216  {
217  mySectionTimes = s;
218  }
219 
222  virtual double frameRateMean(int section) const;
223  virtual void setFrameRateMean(int section, double frameRateMean);
224 
227  virtual double frameRateMedian(int section) const;
228  virtual void setFrameRateMedian(int section, double frameRateMedian);
229 
232  virtual double frameRateStandardDeviation(int section) const;
233  virtual void setFrameRateStandardDeviation(int section, double
234  frameRateStandardDeviation);
235 
238  virtual double minFrameRate(int section) const;
239  virtual void setMinFrameRate(int section, double minFrameRate);
240 
243  virtual double maxFrameRate(int section) const;
244  virtual void setMaxFrameRate(int section, double maxFrameRate);
245 
248  virtual double simTimeToRealTimeRatio() const;
249  virtual void setSimTimeToRealTimeRatio(double ratio);
251 
253  virtual void setExericseStartTime(DtTime time);
254  virtual DtTime exerciseStartTime();
255 
258  virtual void setSimTime(DtTime time);
259  virtual DtTime simTime();
260 
262  virtual void setRunDurationTime(DtTime);
263  virtual DtTime runDurationTime() const;
264 
266  virtual void setSimStartSimTime(DtTime time);
267  virtual DtTime simStartSimTime() const;
268 
271  virtual void setTimeMultiplier(double multiplier);
272  virtual double timeMultiplier() const;
273 
276  //virtual void setIsOldParameterDb(bool flag);
277  //virtual bool isOldParameterDb() const;
278 
281  virtual void setIsCurrentParameterDb(bool flag);
282  virtual bool isCurrentParameterDb() const;
283 
284  virtual void setResourceMonitorEnabled(bool flag);
285  virtual bool resourceMonitorEnabled() const;
286 
288  virtual void setIsTimeManaged(bool);
289  virtual bool isTimeManaged() const;
290 
292 
293  virtual void setScenarioName(const DtString& name);
294  virtual const DtString& scenarioName() const;
296 
299 
300  virtual void setScenarioFilename(const DtFilename& name);
301  virtual const DtFilename& scenarioFilename() const;
303 
305 
306  virtual void setSimulationModelSets(const std::vector<DtFilename>&);
307  virtual const std::vector<DtFilename>& simulationModelSets() const;
309 
311 
312  virtual void setTerrainName(const DtFilename& name);
313  virtual const DtFilename& terrainName() const;
315 
317 
318  virtual void setFrameRateMode(char mode);
319  virtual char frameRateMode() const;
321 
323  virtual double dT() const;
324 
327 
328  virtual void setGuiTerrainName(const DtFilename& name);
329  virtual const DtFilename& guiTerrainName() const;
331 
332  virtual void setNumberOfTickThreads(short);
333  virtual short numberOfTickThreads() const;
334 
335  virtual void setNumberOfCPUs(short);
336  virtual short numberOfCPUs() const;
337 
338  virtual void setTickingPublishersDuringObjectTick(bool);
339  virtual bool tickingPublishersDuringObjectTick() const;
340 
342 
343  virtual void setSimEngineId(DtU32 id);
344  virtual DtU32 simEngineId() const;
346 
350  virtual const DtSettingsObject* lookupSetting(std::string name) const;
351 
356  virtual void setSetting(const DtSettingsObject* object);
357 
359  virtual void copySettingsMap(const DtSettingsMap&);
360 
364  virtual void setObjectCounts(const std::map<DtU16, int>&);
365  virtual void setObjectCounts(const ObjectCounts&);
366  virtual int totalLocalObjects() const;
367  const ObjectCounts& objectCounts() const
368  {
369  return myObjectCounts;
370  }
372 
378 
379  virtual DtRwKeyValueList& scenarioData();
380  virtual const DtRwKeyValueList& scenarioData() const;
382 
383 protected:
384 
385  DtSimulationAddress myAddress;
386  DtInetAddr myInetAddr;
387  DtU32 myPort;
392 
396 
401 
402  const DtClock* myClock;
405 
408 
409  //bool myIsOldParameterDb;
411 
413 
415 
417  DtFilename myScenarioFilename;
418 
419  DtFilename myTerrainName;
420  DtFilename myGuiTerrainName;
421 
423 
426 
430 
440 
442 
443  std::vector<DtFilename> mySimulationModelSets;
444 
446 
448 
450 
454 };
DtSettingsMap mySettingsMap
Map of DtSettingsObjects.
Definition: backend.h:425
Definition: backend.h:45
DtFilename myGuiTerrainName
Definition: backend.h:420
DtSimulationAddress myAddress
Definition: backend.h:385
int myAppIdRangeMax
Definition: backend.h:428
Class which holds a list of string key and string value pairs. This class is a DtReaderWriter, and also has associated DtBufferSerialize methods available.
Definition: rwKeyValueList.h:21
DtFloat64 frameRateStandardDeviation
Definition: backend.h:58
DtSimulationStatus
Definition: backend.h:26
bool myTickingPublishersDuringObjectTick
Definition: backend.h:453
DtString myScenarioName
Definition: backend.h:416
void setSectionTimes(const DtBackend::SectionTimes &s)
Definition: backend.h:215
int myScenarioRunId
Definition: backend.h:427
bool myIsCurrentParameterDb
Definition: backend.h:410
Definition: backend.h:34
Definition: backend.h:41
const ObjectCounts & objectCounts() const
Deals with locally published objects. Keys are stored as high char of kind and low char of domain wit...
Definition: backend.h:367
DtU16 myControlState
Definition: backend.h:388
Definition: backend.h:44
ObjectCounts myObjectCounts
Definition: backend.h:441
Loaded but not ready to simulate.
Definition: backend.h:73
std::map< int, SectionTime > SectionTimes
Definition: backend.h:63
DtTime myRunDurationTime
Definition: backend.h:445
double myTimeMultiplier
Definition: backend.h:400
DtTime mySimTime
Definition: backend.h:398
Definition: backend.h:46
DtTime myExerciseStartTime
Definition: backend.h:397
DtFloat64 frameRateMean
Definition: backend.h:56
Instances of DtBackend are created and maintained by a DtVrfBackendListener, and are containers for d...
Definition: backend.h:51
Definition: backend.h:37
bool myIsLoaded
Definition: backend.h:390
short myNumberOfTickThreads
Definition: backend.h:451
char myFrameRateMode
Definition: backend.h:429
Definition: settingsObject.h:27
DtTime myLastResponseTime
Definition: backend.h:389
bool myReinitializingScenario
Definition: backend.h:434
Definition: backend.h:42
Definition: backend.h:35
DtFilename myTerrainName
Definition: backend.h:419
SectionTimes mySectionTimes
Frame rate information.
Definition: backend.h:394
DtU32 myPort
Definition: backend.h:387
bool myClosingScenario
Definition: backend.h:435
This back-end cannot simulate a scenario.
Definition: backend.h:72
bool myIsTimeManaged
Definition: backend.h:414
DtTime mySimStartSimTime
Definition: backend.h:399
bool myLoadedNewScenario
Definition: backend.h:431
bool myResourceMonitorEnabled
Definition: backend.h:412
This back-end is currently paused.
Definition: backend.h:76
bool myCanSimulate
Definition: backend.h:391
Definition: backend.h:33
std::map< short, int > ObjectCounts
Definition: backend.h:84
double DtFloat64
Definition: vrvControlStructTypes.h:36
Definition: backend.h:38
This back-end is currenty saving a scenario.
Definition: backend.h:79
DtFloat64 minFrameRate
Definition: backend.h:59
DtInetAddr myInetAddr
Definition: backend.h:386
These flags will represent the status of the overall simulation. A back-end will not report these sta...
Definition: backend.h:31
This back-end is currently playing a scenario.
Definition: backend.h:75
short myNumberOfCPUs
Definition: backend.h:452
DtRwKeyValueList myScenarioData
Definition: backend.h:447
This back-end is currently closing a scenario.
Definition: backend.h:78
double mySimTimeToRealTimeRatio
Definition: backend.h:395
const DtBackend::SectionTimes & sectionTimes() const
Definition: backend.h:210
std::map< std::string, DtSettingsObject * > DtSettingsMap
Definition: settingsManager.h:97
Definition: backend.h:39
bool myRollingBackScenario
Definition: backend.h:437
bool myImportingScenario
Definition: backend.h:433
This back-end has no scenario loaded.
Definition: backend.h:71
const char int mode
Definition: ioapi.h:38
This back-end is ready to simulate (i.e. can have simulation objects created on it and can be played)...
Definition: backend.h:74
DtTime myLastSimTimeUpdated
wall-clock time elapsed since last sim time was updated
Definition: backend.h:404
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
Definition: backend.h:32
Status
Definition: backend.h:66
Definition: backend.h:40
bool mySavingScenario
Definition: backend.h:439
std::vector< DtFilename > mySimulationModelSets
Definition: backend.h:443
bool myLoadingScenario
Definition: backend.h:432
DtTime myDt
Duration of last frame (simulation time).
Definition: backend.h:407
DtU32 mySimEngineId
Definition: backend.h:422
bool myHostingDynamicTerrainServer
Definition: backend.h:436
Definition: backend.h:54
This back-end is currently loading a scenario.
Definition: backend.h:77
DtU32 myScenarioCapabilities
Definition: backend.h:449
DtFilename myScenarioFilename
Definition: backend.h:417
bool myCreatingSimulationObjectGroup
Definition: backend.h:438
Definition: backend.h:36
DtFloat64 maxFrameRate
Definition: backend.h:60
const DtClock * myClock
Definition: backend.h:402
DtFloat64 frameRateMedian
Definition: backend.h:57

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)