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 class DtModelSet;
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;
73 
75 typedef void (*DtSimTickFunction)(void* userData);
76 typedef void (*DtRunDurationCallbackFcn)(void* userData);
77 
91 #include "vrfcore/vrfcoreDefines.h"
93 {
94 public:
95 
97  DtSimManager(DtExerciseConn* connection);
98 
100  virtual ~DtSimManager();
101 
102 private:
103 
106  DtSimManager(const DtSimManager& orig);
107 
110  DtSimManager& operator=(const DtSimManager& orig);
111 
112 public:
113 
118  virtual bool init();
119 
121  virtual const DtVrfSimOptionsInterface* simOptions() const;
122 
124  virtual void setSimOptions(const DtVrfSimOptionsInterface&);
125 
135  virtual bool createExerciseClock();
136 
137  virtual bool createScheduler();
138  virtual bool createMessageInterface();
139  virtual bool createFrameRateMonitor();
141  virtual bool createVrfSimSettingsManager();
142  virtual bool createParallelTickManager();
143 
146  virtual void tick();
147 
148 
154  virtual void setTargetFrameRate(int rate);
155  virtual int targetFrameRate() const;
157 
160  virtual void sleep() const;
161 
162  virtual bool deliverMessage(const DtSimInterfaceMessage& msg);
163 
164  virtual bool receiveMessage(const DtSimInterfaceMessage& msg);
165 
166  virtual bool createAndDeliverMessage(
167  const DtSimulationAddress& recipient,
168  const DtSimInterfaceContent & content,
169  bool overrideTimestampOrder = true);
170 
171 #if XXX
172 
173  virtual bool createAndDeliverMessage(const DtSimulationAddress& sender,
174  const DtSimulationAddress& recipient,
175  const DtSimInterfaceContent & content);
176 #endif
177 
185 
186  virtual void addTickEntry(DtSimTickFunction tickFunction, void* userData);
187  virtual void removeTickEntry(DtSimTickFunction tickFunction, void* userData);
189 
193  static void setAppDataDir(const DtString&);
194  static const DtString& appDataDir();
196 
200  virtual void addPostTickEntry(DtSimTickFunction tickFunction, void* userData);
201  virtual void removePostTickEntry(DtSimTickFunction tickFunction, void* userData);
203 
207  virtual DtExerciseConn* exerciseConn();
208 
211  virtual DtExerciseClock* exerciseClock();
212 
217  virtual DtFrameRateMonitor* frameRateMonitor();
218 
221  virtual DtParallelTickManager* parallelTickManager();
222 
224  {
225  public:
227  {
228  myMgr->setEnableParallelTickManager(true);
229  }
230 
232  {
233  myMgr->setEnableParallelTickManager(false);
234  }
235 
236  private:
238 
241  void operator=(const EnableParallelTickManagerScopeGuard&);
242  };
243 
248  virtual void setEnableParallelTickManager(bool enabled);
249 
251  virtual DtScheduler* scheduler();
252 
255 
256  virtual void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
257  virtual DtPhysicalWorld* physicalWorld();
258  virtual const DtPhysicalWorld* physicalWorld() const;
260 
262 
263  virtual void setCommModelManager(DtCommModelManager* newCommModelManager);
264  virtual DtCommModelManager* commModelManager();
265  virtual const DtCommModelManager* commModelManager() const;
267 
269 
270  virtual void setSimTerrainRequestManager(DtSimTerrainRequestManager* newSimTerrainRequestManager);
271  virtual DtSimTerrainRequestManager* simTerrainRequestManager();
272  virtual const DtSimTerrainRequestManager* simTerrainRequestManager() const;
274 
277  virtual void setVrfObjectManager (DtVrfObjectManager* entityManager);
278  virtual DtVrfObjectManager* vrfObjectManager();
279  virtual const DtVrfObjectManager* vrfObjectManager() const;
280 
281  virtual void setVrfNavAreaManager(DtVrfNavAreaManager* navAreaManager);
282  virtual DtVrfNavAreaManager* vrfNavAreaManager();
283  virtual const DtVrfNavAreaManager* vrfNavAreaManager() const;
284 
285  virtual void setSpawnSinkManager(DtSpawnSinkManager* spawnSinkManager);
286  virtual DtSpawnSinkManager* spawnSinkManager();
287  virtual const DtSpawnSinkManager* spawnSinkManager() const;
288 
292  virtual void setEmbeddedEntityInfoManager(DtEmbeddedEntityInfoManager* eeInfManager);
293  virtual DtEmbeddedEntityInfoManager* embeddedEntityInfoManager();
294  virtual const DtEmbeddedEntityInfoManager* embeddedEntityInfoManager() const;
295 
298  virtual void setModelSet(const DtModelSet&);
299  const DtModelSet* modelSet() const;
300 
302  virtual void setScriptedTaskManager (DtScriptedTaskManager*);
303  virtual DtScriptedTaskManager* scriptedTaskManager();
304  virtual const DtScriptedTaskManager* scriptedTaskManager() const;
305 
307  virtual void setScenarioEventManager (DtScenarioEventManager*);
308  virtual DtScenarioEventManager* scenarioEventManager();
309  virtual const DtScenarioEventManager* scenarioEventManager() const;
310 
312  virtual void setHazardAreaManager (DtHazardAreaManager*);
313  virtual DtHazardAreaManager* hazardAreaManager();
314  virtual const DtHazardAreaManager* hazardAreaManager() const;
315 
317  virtual void setIntelCollectionAreaManager (DtIntelCollectionAreaManager*);
318  virtual DtIntelCollectionAreaManager* intelCollectionAreaManager();
319  virtual const DtIntelCollectionAreaManager* intelCollectionAreaManager() const;
320 
322  virtual void setScriptedObjectsMovementManager (DtScriptedObjectsMovementManager*);
323  virtual DtScriptedObjectsMovementManager* scriptedObjectsMovementManager();
324  virtual const DtScriptedObjectsMovementManager* scriptedObjectsMovementManager() const;
325 
328  virtual void setAggregateSpatialModel (DtAggregateSpatialModel* aggregateSpatialModel);
329  virtual DtAggregateSpatialModel* aggregateSpatialModel();
330  virtual const DtAggregateSpatialModel* aggregateSpatialModel() const;
331 
335  virtual void setDetonationManager(DtDetonationManager* detonationManager);
336  virtual DtDetonationManager* detonationManager();
337 
343  virtual void setFireManager(DtFireManager* fireManager);
344  virtual DtFireManager* fireManager();
345 
349 
350  virtual void setGlobalPlanManager(DtGlobalPlanManager* planManager);
351  virtual const DtGlobalPlanManager* globalPlanManager() const;
352  virtual DtGlobalPlanManager* globalPlanManager();
354 
356 
357  virtual void setStealthCommandsManager(DtStealthCommandsManager* planManager);
358  virtual const DtStealthCommandsManager* stealthCommandsManager() const;
359  virtual DtStealthCommandsManager* stealthCommandsManager();
361 
363 
364  virtual void setHostilityManager(DtHostilityManager* hostilityManager);
365  virtual const DtHostilityManager* hostilityManager() const;
366  virtual DtHostilityManager* hostilityManager();
368 
370 
371  virtual void setScenarioExtrasMgr(DtScenarioExtrasMgr* scenarioExtrasMgr);
372  virtual const DtScenarioExtrasMgr* scenarioExtrasMgr() const;
373  virtual DtScenarioExtrasMgr* scenarioExtrasMgr();
375 
377  virtual DtVrfSimSettingsManager* vrfSimSettingsManager();
378 
381  virtual void addMessageCallback(int type, DtMessageCallbackFcn fcn,
382  void* usrData);
383 
384  virtual void removeMessageCallback(int type, DtMessageCallbackFcn fcn,
385  void* usrData);
386 
390 
391  virtual DtVrfMessageInterface* messageInterface() const;
392  virtual DtInterfaceMessageExecutive* messageExecutive();
393 
396  static void TickFunction(void* userData);
397 
401  virtual void registerInterfaceCallbacks();
402 
405  virtual bool processExtendedPropertySettings();
406 
409  virtual const DtSimulationAddress& messageAddress() const;
410 
412  static void randSeedCallback(DtSimMessage* msg, void* usr);
413 
415  virtual unsigned long sequenceNumber();
416 
419  virtual void setSequenceNumber(unsigned long sequenceNumber);
420 
422  DtResourceMonitor* resourceMonitor();
423  void setResourceMonitor(DtResourceMonitor*);
424 
426  virtual int vrfSessionId() const;
427 
429  virtual int vrfMessageVersionSupported() const;
430 
433  virtual void runForDuration(double);
434  virtual double runDurationTime() const;
435 
437  virtual void stopSimulationDurationTimer();
438 
440  static void runDurationCompleteCallback(DtTimer*);
441  virtual void processRunDurationComplete();
442 
444  virtual void addSimulationRunDurationCallback(DtRunDurationCallbackFcn tickFunction, void* userData);
445  virtual void removeSimulationRunDurationCallback(DtRunDurationCallbackFcn tickFunction, void* userData);
446 
449  virtual void setSetScenarioStartTimeAtLocalOnFirstObjectCreation(bool, int defaultTime = 36000);
450  virtual bool shouldSetScenarioStartTimeAtLocalOnFirstObjectCreation() const;
451  virtual int setScenarioStartTimeAtLocalOnFirstObjectCreation() const;
452 
453 protected:
455 
469 
471  DtExerciseConn* myExerciseConn;
495 
497 
503 
506 };
507 
509 {
510  return myResourceMonitor;
511 }
512 
514 {
515  myResourceMonitor = m;
516 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)