VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
simManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
14 
15 
17 #include <vl/hostStructs.h>
18 #include <vlutil/vlMachineTypes.h>
20 #include <matrix/vlVector.h>
21 
24 class DtExerciseConn;
25 class DtPhysicalWorld;
26 class DtCommModelManager;
28 class DtThreadSocket;
29 class DtThreadMessageList;
30 class DtFrameRateMonitor;
31 class DtResourceMonitor;
32 class DtVrfObjectMessage;
33 
36 class DtEntityType;
37 class DtEchelonRoleName;
38 class DtString;
39 class DtList;
41 class DtEntityType;
43 
47 class DtScheduler;
48 class DtExerciseClock;
49 class DtVrfObjectManager;
55 class DtScriptedObjects;
58 class DtFireManager;
63 class DtHostilityManager;
65 class DtTimer;
72 class DtSpawnSinkManager;
74 
76 typedef void (*DtSimTickFunction)(void* userData);
77 typedef void (*DtRunDurationCallbackFcn)(void* userData);
78 
92 #include "vrfcore/vrfcoreDefines.h"
94 {
95 public:
96 
98  DtSimManager(DtExerciseConn* connection);
99 
101  virtual ~DtSimManager();
102 
103 private:
104 
107  DtSimManager(const DtSimManager& orig);
108 
111  DtSimManager& operator=(const DtSimManager& orig);
112 
113 public:
114 
119  virtual bool init();
120 
122  virtual const DtVrfSimOptionsInterface* simOptions() const;
123 
125  virtual void setSimOptions(const DtVrfSimOptionsInterface&);
126 
136  virtual bool createExerciseClock();
137 
138  virtual bool createScheduler();
139  virtual bool createMessageInterface();
140  virtual bool createFrameRateMonitor();
142  virtual bool createVrfSimSettingsManager();
143  virtual bool createParallelTickManager();
144 
147  virtual void tick();
148 
149 
155  virtual void setTargetFrameRate(int rate);
156  virtual int targetFrameRate() const;
158 
161  virtual void sleep() const;
162 
163  virtual bool deliverMessage(const DtSimInterfaceMessage& msg);
164 
165  virtual bool receiveMessage(const DtSimInterfaceMessage& msg);
166 
167  virtual bool createAndDeliverMessage(
168  const DtSimulationAddress& recipient,
169  const DtSimInterfaceContent & content,
170  bool overrideTimestampOrder = true);
171 
172 #if XXX
173 
174  virtual bool createAndDeliverMessage(const DtSimulationAddress& sender,
175  const DtSimulationAddress& recipient,
176  const DtSimInterfaceContent & content);
177 #endif
178 
186 
187  virtual void addTickEntry(DtSimTickFunction tickFunction, void* userData);
188  virtual void removeTickEntry(DtSimTickFunction tickFunction, void* userData);
190 
194  virtual void addPostTickEntry(DtSimTickFunction tickFunction, void* userData);
195  virtual void removePostTickEntry(DtSimTickFunction tickFunction, void* userData);
197 
201  virtual DtExerciseConn* exerciseConn();
202 
205  virtual DtExerciseClock* exerciseClock();
206 
211  virtual DtFrameRateMonitor* frameRateMonitor();
212 
215  virtual DtParallelTickManager* parallelTickManager();
216 
218  {
219  public:
221  {
222  myMgr->setEnableParallelTickManager(true);
223  }
224 
226  {
227  myMgr->setEnableParallelTickManager(false);
228  }
229 
230  private:
232 
235  void operator=(const EnableParallelTickManagerScopeGuard&);
236  };
237 
242  virtual void setEnableParallelTickManager(bool enabled);
243 
245  virtual DtScheduler* scheduler();
246 
249 
250  virtual void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
251  virtual DtPhysicalWorld* physicalWorld();
252  virtual const DtPhysicalWorld* physicalWorld() const;
254 
256 
257  virtual void setCommModelManager(DtCommModelManager* newCommModelManager);
258  virtual DtCommModelManager* commModelManager();
259  virtual const DtCommModelManager* commModelManager() const;
261 
263 
264  virtual void setSimTerrainRequestManager(DtSimTerrainRequestManager* newSimTerrainRequestManager);
265  virtual DtSimTerrainRequestManager* simTerrainRequestManager();
266  virtual const DtSimTerrainRequestManager* simTerrainRequestManager() const;
268 
271  virtual void setVrfObjectManager (DtVrfObjectManager* entityManager);
272  virtual DtVrfObjectManager* vrfObjectManager();
273  virtual const DtVrfObjectManager* vrfObjectManager() const;
274 
275  virtual void setVrfNavAreaManager(DtVrfNavAreaManager* navAreaManager);
276  virtual DtVrfNavAreaManager* vrfNavAreaManager();
277  virtual const DtVrfNavAreaManager* vrfNavAreaManager() const;
278 
279  virtual void setSpawnSinkManager(DtSpawnSinkManager* spawnSinkManager);
280  virtual DtSpawnSinkManager* spawnSinkManager();
281  virtual const DtSpawnSinkManager* spawnSinkManager() const;
282 
286  virtual void setEmbeddedEntityInfoManager(DtEmbeddedEntityInfoManager* eeInfManager);
287  virtual DtEmbeddedEntityInfoManager* embeddedEntityInfoManager();
288  virtual const DtEmbeddedEntityInfoManager* embeddedEntityInfoManager() const;
289 
291  virtual void setScriptedTaskManager (DtScriptedTaskManager*);
292  virtual DtScriptedTaskManager* scriptedTaskManager();
293  virtual const DtScriptedTaskManager* scriptedTaskManager() const;
294 
296  virtual void setScenarioEventManager (DtScenarioEventManager*);
297  virtual DtScenarioEventManager* scenarioEventManager();
298  virtual const DtScenarioEventManager* scenarioEventManager() const;
299 
301  virtual void setHazardAreaManager (DtHazardAreaManager*);
302  virtual DtHazardAreaManager* hazardAreaManager();
303  virtual const DtHazardAreaManager* hazardAreaManager() const;
304 
306  virtual void setIntelCollectionAreaManager (DtIntelCollectionAreaManager*);
307  virtual DtIntelCollectionAreaManager* intelCollectionAreaManager();
308  virtual const DtIntelCollectionAreaManager* intelCollectionAreaManager() const;
309 
311  virtual void setScriptedObjectsMovementManager (DtScriptedObjectsMovementManager*);
312  virtual DtScriptedObjectsMovementManager* scriptedObjectsMovementManager();
313  virtual const DtScriptedObjectsMovementManager* scriptedObjectsMovementManager() const;
314 
317  virtual void setAggregateSpatialModel (DtAggregateSpatialModel* aggregateSpatialModel);
318  virtual DtAggregateSpatialModel* aggregateSpatialModel();
319  virtual const DtAggregateSpatialModel* aggregateSpatialModel() const;
320 
324  virtual void setDetonationManager(DtDetonationManager* detonationManager);
325  virtual DtDetonationManager* detonationManager();
326 
332  virtual void setFireManager(DtFireManager* fireManager);
333  virtual DtFireManager* fireManager();
334 
338 
339  virtual void setGlobalPlanManager(DtGlobalPlanManager* planManager);
340  virtual const DtGlobalPlanManager* globalPlanManager() const;
341  virtual DtGlobalPlanManager* globalPlanManager();
343 
345 
346  virtual void setStealthCommandsManager(DtStealthCommandsManager* planManager);
347  virtual const DtStealthCommandsManager* stealthCommandsManager() const;
348  virtual DtStealthCommandsManager* stealthCommandsManager();
350 
352 
353  virtual void setHostilityManager(DtHostilityManager* hostilityManager);
354  virtual const DtHostilityManager* hostilityManager() const;
355  virtual DtHostilityManager* hostilityManager();
357 
359 
360  virtual void setScenarioExtrasMgr(DtScenarioExtrasMgr* scenarioExtrasMgr);
361  virtual const DtScenarioExtrasMgr* scenarioExtrasMgr() const;
362  virtual DtScenarioExtrasMgr* scenarioExtrasMgr();
364 
367 
368  virtual void setSimCommandDistributor(DtSimCommandDistributor* distributor);
369  virtual const DtSimCommandDistributor* simCommandDistributor() const;
370  virtual DtSimCommandDistributor* simCommandDistributor();
372 
375  virtual void setScenarioRunId(int);
376  virtual int scenarioRunId() const;
377 
379  virtual void setRejectMismatchedScenarioMessages(bool);
380  virtual bool rejectMismatchedScenarioMessages() const;
381 
384  virtual bool rejectMessage(const DtVrfObjectMessage*) const;
385 
387  virtual DtVrfSimSettingsManager* vrfSimSettingsManager();
388 
391  virtual void addMessageCallback(int type, DtMessageCallbackFcn fcn,
392  void* usrData);
393 
394  virtual void removeMessageCallback(int type, DtMessageCallbackFcn fcn,
395  void* usrData);
396 
402 
403  virtual DtU32 scenarioCapabilities() const;
404  virtual void setScenarioCapabilities(DtU32 v);
406 
410 
411  virtual DtVrfMessageInterface* messageInterface() const;
412  virtual DtInterfaceMessageExecutive* messageExecutive();
413 
416  static void TickFunction(void* userData);
417 
421  virtual void registerInterfaceCallbacks();
422 
425  virtual bool processExtendedPropertySettings();
426 
429  virtual const DtSimulationAddress& messageAddress() const;
430 
432  static void randSeedCallback(DtSimMessage* msg, void* usr);
433 
435  virtual unsigned long sequenceNumber();
436 
439  virtual void setSequenceNumber(unsigned long sequenceNumber);
440 
442  DtResourceMonitor* resourceMonitor();
443  void setResourceMonitor(DtResourceMonitor*);
444 
446  virtual int vrfSessionId() const;
447 
449  virtual int vrfMessageVersionSupported() const;
450 
453  virtual void runForDuration(double);
454  virtual double runDurationTime() const;
455 
457  virtual void stopSimulationDurationTimer();
458 
460  static void runDurationCompleteCallback(DtTimer*);
461  virtual void processRunDurationComplete();
462 
464  virtual void addSimulationRunDurationCallback(DtRunDurationCallbackFcn tickFunction, void* userData);
465  virtual void removeSimulationRunDurationCallback(DtRunDurationCallbackFcn tickFunction, void* userData);
466 
469  virtual void setSetScenarioStartTimeAtLocalOnFirstObjectCreation(bool, int defaultTime = 36000);
470  virtual bool shouldSetScenarioStartTimeAtLocalOnFirstObjectCreation() const;
471  virtual int setScenarioStartTimeAtLocalOnFirstObjectCreation() const;
472 
473 protected:
475 
489 
491  DtExerciseConn* myExerciseConn;
515 
517 
523 
526 
530 };
531 
533 {
534  return myResourceMonitor;
535 }
536 
538 {
539  myResourceMonitor = m;
540 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)