VR-Forces Development_Version 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 
35 class DtEntityType;
36 class DtEchelonRoleName;
37 class DtString;
38 class DtList;
40 class DtEntityType;
42 
46 class DtScheduler;
47 class DtExerciseClock;
48 class DtVrfObjectManager;
54 class DtScriptedObjects;
57 class DtFireManager;
62 class DtHostilityManager;
64 class DtTimer;
71 class DtSpawnSinkManager;
72 
74 typedef void (*DtSimTickFunction)(void* userData);
75 typedef void (*DtRunDurationCallbackFcn)(void* userData);
76 
90 #include "vrfcore/vrfcoreDefines.h"
92 {
93 public:
94 
96  DtSimManager(DtExerciseConn* connection);
97 
99  virtual ~DtSimManager();
100 
101 private:
102 
105  DtSimManager(const DtSimManager& orig);
106 
109  DtSimManager& operator=(const DtSimManager& orig);
110 
111 public:
112 
117  virtual bool init();
118 
120  virtual const DtVrfSimOptionsInterface* simOptions() const;
121 
123  virtual void setSimOptions(const DtVrfSimOptionsInterface&);
124 
134  virtual bool createExerciseClock();
135 
136  virtual bool createScheduler();
137  virtual bool createMessageInterface();
138  virtual bool createFrameRateMonitor();
140  virtual bool createVrfSimSettingsManager();
141  virtual bool createParallelTickManager();
142 
145  virtual void tick();
146 
147 
153  virtual void setTargetFrameRate(int rate);
154  virtual int targetFrameRate() const;
156 
159  virtual void sleep() const;
160 
161  virtual bool deliverMessage(const DtSimInterfaceMessage& msg);
162 
163  virtual bool receiveMessage(const DtSimInterfaceMessage& msg);
164 
165  virtual bool createAndDeliverMessage(
166  const DtSimulationAddress& recipient,
167  const DtSimInterfaceContent & content,
168  bool overrideTimestampOrder = true);
169 
170 #if XXX
171 
172  virtual bool createAndDeliverMessage(const DtSimulationAddress& sender,
173  const DtSimulationAddress& recipient,
174  const DtSimInterfaceContent & content);
175 #endif
176 
184 
185  virtual void addTickEntry(DtSimTickFunction tickFunction, void* userData);
186  virtual void removeTickEntry(DtSimTickFunction tickFunction, void* userData);
188 
192  static void setAppDataDir(const DtString&);
193  static const DtString& appDataDir();
195 
199  virtual void addPostTickEntry(DtSimTickFunction tickFunction, void* userData);
200  virtual void removePostTickEntry(DtSimTickFunction tickFunction, void* userData);
202 
206  virtual DtExerciseConn* exerciseConn();
207 
210  virtual DtExerciseClock* exerciseClock();
211 
216  virtual DtFrameRateMonitor* frameRateMonitor();
217 
220  virtual DtParallelTickManager* parallelTickManager();
221 
223  {
224  public:
226  {
227  myMgr->setEnableParallelTickManager(true);
228  }
229 
231  {
232  myMgr->setEnableParallelTickManager(false);
233  }
234 
235  private:
237 
240  void operator=(const EnableParallelTickManagerScopeGuard&);
241  };
242 
247  virtual void setEnableParallelTickManager(bool enabled);
248 
250  virtual DtScheduler* scheduler();
251 
254 
255  virtual void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
256  virtual DtPhysicalWorld* physicalWorld();
257  virtual const DtPhysicalWorld* physicalWorld() const;
259 
261 
262  virtual void setCommModelManager(DtCommModelManager* newCommModelManager);
263  virtual DtCommModelManager* commModelManager();
264  virtual const DtCommModelManager* commModelManager() const;
266 
268 
269  virtual void setSimTerrainRequestManager(DtSimTerrainRequestManager* newSimTerrainRequestManager);
270  virtual DtSimTerrainRequestManager* simTerrainRequestManager();
271  virtual const DtSimTerrainRequestManager* simTerrainRequestManager() const;
273 
276  virtual void setVrfObjectManager (DtVrfObjectManager* entityManager);
277  virtual DtVrfObjectManager* vrfObjectManager();
278  virtual const DtVrfObjectManager* vrfObjectManager() const;
279 
280  virtual void setVrfNavAreaManager(DtVrfNavAreaManager* navAreaManager);
281  virtual DtVrfNavAreaManager* vrfNavAreaManager();
282  virtual const DtVrfNavAreaManager* vrfNavAreaManager() const;
283 
284  virtual void setSpawnSinkManager(DtSpawnSinkManager* spawnSinkManager);
285  virtual DtSpawnSinkManager* spawnSinkManager();
286  virtual const DtSpawnSinkManager* spawnSinkManager() const;
287 
291  virtual void setEmbeddedEntityInfoManager(DtEmbeddedEntityInfoManager* eeInfManager);
292  virtual DtEmbeddedEntityInfoManager* embeddedEntityInfoManager();
293  virtual const DtEmbeddedEntityInfoManager* embeddedEntityInfoManager() const;
294 
296  virtual void setScriptedTaskManager (DtScriptedTaskManager*);
297  virtual DtScriptedTaskManager* scriptedTaskManager();
298  virtual const DtScriptedTaskManager* scriptedTaskManager() const;
299 
301  virtual void setScenarioEventManager (DtScenarioEventManager*);
302  virtual DtScenarioEventManager* scenarioEventManager();
303  virtual const DtScenarioEventManager* scenarioEventManager() const;
304 
306  virtual void setHazardAreaManager (DtHazardAreaManager*);
307  virtual DtHazardAreaManager* hazardAreaManager();
308  virtual const DtHazardAreaManager* hazardAreaManager() const;
309 
311  virtual void setIntelCollectionAreaManager (DtIntelCollectionAreaManager*);
312  virtual DtIntelCollectionAreaManager* intelCollectionAreaManager();
313  virtual const DtIntelCollectionAreaManager* intelCollectionAreaManager() const;
314 
316  virtual void setScriptedObjectsMovementManager (DtScriptedObjectsMovementManager*);
317  virtual DtScriptedObjectsMovementManager* scriptedObjectsMovementManager();
318  virtual const DtScriptedObjectsMovementManager* scriptedObjectsMovementManager() const;
319 
322  virtual void setAggregateSpatialModel (DtAggregateSpatialModel* aggregateSpatialModel);
323  virtual DtAggregateSpatialModel* aggregateSpatialModel();
324  virtual const DtAggregateSpatialModel* aggregateSpatialModel() const;
325 
329  virtual void setDetonationManager(DtDetonationManager* detonationManager);
330  virtual DtDetonationManager* detonationManager();
331 
337  virtual void setFireManager(DtFireManager* fireManager);
338  virtual DtFireManager* fireManager();
339 
343 
344  virtual void setGlobalPlanManager(DtGlobalPlanManager* planManager);
345  virtual const DtGlobalPlanManager* globalPlanManager() const;
346  virtual DtGlobalPlanManager* globalPlanManager();
348 
350 
351  virtual void setStealthCommandsManager(DtStealthCommandsManager* planManager);
352  virtual const DtStealthCommandsManager* stealthCommandsManager() const;
353  virtual DtStealthCommandsManager* stealthCommandsManager();
355 
357 
358  virtual void setHostilityManager(DtHostilityManager* hostilityManager);
359  virtual const DtHostilityManager* hostilityManager() const;
360  virtual DtHostilityManager* hostilityManager();
362 
364 
365  virtual void setScenarioExtrasMgr(DtScenarioExtrasMgr* scenarioExtrasMgr);
366  virtual const DtScenarioExtrasMgr* scenarioExtrasMgr() const;
367  virtual DtScenarioExtrasMgr* scenarioExtrasMgr();
369 
371  virtual DtVrfSimSettingsManager* vrfSimSettingsManager();
372 
375  virtual void addMessageCallback(int type, DtMessageCallbackFcn fcn,
376  void* usrData);
377 
378  virtual void removeMessageCallback(int type, DtMessageCallbackFcn fcn,
379  void* usrData);
380 
384 
385  virtual DtVrfMessageInterface* messageInterface() const;
386  virtual DtInterfaceMessageExecutive* messageExecutive();
387 
390  static void TickFunction(void* userData);
391 
395  virtual void registerInterfaceCallbacks();
396 
399  virtual bool processExtendedPropertySettings();
400 
403  virtual const DtSimulationAddress& messageAddress() const;
404 
406  static void randSeedCallback(DtSimMessage* msg, void* usr);
407 
409  virtual unsigned long sequenceNumber();
410 
413  virtual void setSequenceNumber(unsigned long sequenceNumber);
414 
416  DtResourceMonitor* resourceMonitor();
417  void setResourceMonitor(DtResourceMonitor*);
418 
420  virtual int vrfSessionId() const;
421 
423  virtual int vrfMessageVersionSupported() const;
424 
427  virtual void runForDuration(double);
428  virtual double runDurationTime() const;
429 
431  virtual void stopSimulationDurationTimer();
432 
434  static void runDurationCompleteCallback(DtTimer*);
435  virtual void processRunDurationComplete();
436 
438  virtual void addSimulationRunDurationCallback(DtRunDurationCallbackFcn tickFunction, void* userData);
439  virtual void removeSimulationRunDurationCallback(DtRunDurationCallbackFcn tickFunction, void* userData);
440 
443  virtual void setSetScenarioStartTimeAtLocalOnFirstObjectCreation(bool, int defaultTime = 36000);
444  virtual bool shouldSetScenarioStartTimeAtLocalOnFirstObjectCreation() const;
445  virtual int setScenarioStartTimeAtLocalOnFirstObjectCreation() const;
446 
447 protected:
449 
463 
465  DtExerciseConn* myExerciseConn;
488 
490 
496 
499 };
500 
502 {
503  return myResourceMonitor;
504 }
505 
507 {
508  myResourceMonitor = m;
509 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)