VR-Forces 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 
207  virtual void setGuiRuntimeLoadBalancingScheme(const DtString& scheme, const DtString& userData);
208  virtual void getGuiRuntimeLoadBalancingScheme(DtString& scheme, DtString& userData) const;
210 
214  virtual void setSimRemoteAttachmentBalancingScheme(const DtString& scheme, const DtString& userData);
215  virtual void getSimRemoteAttachmentBalancingScheme(DtString& scheme, DtString& userData) const;
217 
219  virtual int numSections() const;
220 
223  virtual int section(int) const;
224 
226  {
227  return mySectionTimes;
228  }
229 
231  {
232  mySectionTimes = s;
233  }
234 
237  virtual double frameRateMean(int section) const;
238  virtual void setFrameRateMean(int section, double frameRateMean);
239 
242  virtual double frameRateMedian(int section) const;
243  virtual void setFrameRateMedian(int section, double frameRateMedian);
244 
247  virtual double frameRateStandardDeviation(int section) const;
248  virtual void setFrameRateStandardDeviation(int section, double
249  frameRateStandardDeviation);
250 
253  virtual double minFrameRate(int section) const;
254  virtual void setMinFrameRate(int section, double minFrameRate);
255 
258  virtual double maxFrameRate(int section) const;
259  virtual void setMaxFrameRate(int section, double maxFrameRate);
260 
263  virtual double simTimeToRealTimeRatio() const;
264  virtual void setSimTimeToRealTimeRatio(double ratio);
266 
268  virtual void setExericseStartTime(DtTime time);
269  virtual DtTime exerciseStartTime();
270 
273  virtual void setSimTime(DtTime time);
274  virtual DtTime simTime();
275 
277  virtual void setRunDurationTime(DtTime);
278  virtual DtTime runDurationTime() const;
279 
281  virtual void setSimStartSimTime(DtTime time);
282  virtual DtTime simStartSimTime() const;
283 
286  virtual void setTimeMultiplier(double multiplier);
287  virtual double timeMultiplier() const;
288 
291  //virtual void setIsOldParameterDb(bool flag);
292  //virtual bool isOldParameterDb() const;
293 
296  virtual void setIsCurrentParameterDb(bool flag);
297  virtual bool isCurrentParameterDb() const;
298 
299  virtual void setResourceMonitorEnabled(bool flag);
300  virtual bool resourceMonitorEnabled() const;
301 
303  virtual void setIsTimeManaged(bool);
304  virtual bool isTimeManaged() const;
305 
307 
308  virtual void setScenarioName(const DtString& name);
309  virtual const DtString& scenarioName() const;
311 
314 
315  virtual void setScenarioFilename(const DtFilename& name);
316  virtual const DtFilename& scenarioFilename() const;
318 
320 
321  virtual void setSimulationModelSets(const std::vector<DtFilename>&);
322  virtual const std::vector<DtFilename>& simulationModelSets() const;
324 
326 
327  virtual void setTerrainName(const DtFilename& name);
328  virtual const DtFilename& terrainName() const;
330 
332 
333  virtual void setFrameRateMode(char mode);
334  virtual char frameRateMode() const;
336 
338  virtual double dT() const;
339 
342 
343  virtual void setGuiTerrainName(const DtFilename& name);
344  virtual const DtFilename& guiTerrainName() const;
346 
347  virtual void setNumberOfTickThreads(short);
348  virtual short numberOfTickThreads() const;
349 
350  virtual void setNumberOfCPUs(short);
351  virtual short numberOfCPUs() const;
352 
353  virtual void setTickingPublishersDuringObjectTick(bool);
354  virtual bool tickingPublishersDuringObjectTick() const;
355 
357 
358  virtual void setSimEngineId(DtU32 id);
359  virtual DtU32 simEngineId() const;
361 
365  virtual const DtSettingsObject* lookupSetting(std::string name) const;
366 
371  virtual void setSetting(const DtSettingsObject* object);
372 
374  virtual void copySettingsMap(const DtSettingsMap&);
375 
379  virtual void setObjectCounts(const std::map<DtU16, int>&);
380  virtual void setObjectCounts(const ObjectCounts&);
381  virtual int totalLocalObjects() const;
382  const ObjectCounts& objectCounts() const
383  {
384  return myObjectCounts;
385  }
387 
393 
394  virtual DtRwKeyValueList& scenarioData();
395  virtual const DtRwKeyValueList& scenarioData() const;
397 
398 protected:
399 
400  DtSimulationAddress myAddress;
401  DtInetAddr myInetAddr;
402  DtU32 myPort;
407 
411 
416 
417  const DtClock* myClock;
420 
423 
424  //bool myIsOldParameterDb;
426 
428 
430 
432  DtFilename myScenarioFilename;
433 
434  DtFilename myTerrainName;
435  DtFilename myGuiTerrainName;
436 
438 
441 
445 
455 
457 
458  std::vector<DtFilename> mySimulationModelSets;
459 
461 
463 
465 
473 };
DtSettingsMap mySettingsMap
Map of DtSettingsObjects.
Definition: backend.h:440
Definition: backend.h:45
DtString myGuiRuntimeLoadBalancingSchemeData
Definition: backend.h:470
DtFilename myGuiTerrainName
Definition: backend.h:435
DtString mySimRemoteAttachmentBalancingScheme
Definition: backend.h:471
DtSimulationAddress myAddress
Definition: backend.h:400
int myAppIdRangeMax
Definition: backend.h:443
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:468
DtString myScenarioName
Definition: backend.h:431
void setSectionTimes(const DtBackend::SectionTimes &s)
Definition: backend.h:230
int myScenarioRunId
Definition: backend.h:442
bool myIsCurrentParameterDb
Definition: backend.h:425
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:382
DtU16 myControlState
Definition: backend.h:403
Definition: backend.h:44
DtString mySimRemoteAttachmentBalancingSchemeData
Definition: backend.h:472
ObjectCounts myObjectCounts
Definition: backend.h:456
Loaded but not ready to simulate.
Definition: backend.h:73
std::map< int, SectionTime > SectionTimes
Definition: backend.h:63
DtTime myRunDurationTime
Definition: backend.h:460
double myTimeMultiplier
Definition: backend.h:415
DtTime mySimTime
Definition: backend.h:413
Definition: backend.h:46
DtTime myExerciseStartTime
Definition: backend.h:412
DtFloat64 frameRateMean
Definition: backend.h:56
DtString myGuiRuntimeLoadBalancingScheme
Definition: backend.h:469
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:405
short myNumberOfTickThreads
Definition: backend.h:466
char myFrameRateMode
Definition: backend.h:444
Definition: settingsObject.h:27
DtTime myLastResponseTime
Definition: backend.h:404
bool myReinitializingScenario
Definition: backend.h:449
Definition: backend.h:42
Definition: backend.h:35
DtFilename myTerrainName
Definition: backend.h:434
SectionTimes mySectionTimes
Frame rate information.
Definition: backend.h:409
DtU32 myPort
Definition: backend.h:402
bool myClosingScenario
Definition: backend.h:450
This back-end cannot simulate a scenario.
Definition: backend.h:72
bool myIsTimeManaged
Definition: backend.h:429
DtTime mySimStartSimTime
Definition: backend.h:414
bool myLoadedNewScenario
Definition: backend.h:446
bool myResourceMonitorEnabled
Definition: backend.h:427
This back-end is currently paused.
Definition: backend.h:76
bool myCanSimulate
Definition: backend.h:406
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:401
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:467
DtRwKeyValueList myScenarioData
Definition: backend.h:462
This back-end is currently closing a scenario.
Definition: backend.h:78
double mySimTimeToRealTimeRatio
Definition: backend.h:410
const DtBackend::SectionTimes & sectionTimes() const
Definition: backend.h:225
std::map< std::string, DtSettingsObject * > DtSettingsMap
Definition: settingsManager.h:97
Definition: backend.h:39
bool myRollingBackScenario
Definition: backend.h:452
bool myImportingScenario
Definition: backend.h:448
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:419
#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:454
std::vector< DtFilename > mySimulationModelSets
Definition: backend.h:458
bool myLoadingScenario
Definition: backend.h:447
DtTime myDt
Duration of last frame (simulation time).
Definition: backend.h:422
DtU32 mySimEngineId
Definition: backend.h:437
bool myHostingDynamicTerrainServer
Definition: backend.h:451
Definition: backend.h:54
This back-end is currently loading a scenario.
Definition: backend.h:77
DtU32 myScenarioCapabilities
Definition: backend.h:464
DtFilename myScenarioFilename
Definition: backend.h:432
bool myCreatingSimulationObjectGroup
Definition: backend.h:453
Definition: backend.h:36
DtFloat64 maxFrameRate
Definition: backend.h:60
const DtClock * myClock
Definition: backend.h:417
DtFloat64 frameRateMedian
Definition: backend.h:57

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)