VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
cgfDispatcher.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 
10 
13 
14 #include <vrfmsgs/messageTypes.h>
16 #include "vrfmsgs/ifLoadScenario.h"
17 #include "vrfmsgs/ifSaveScenario.h"
19 #include "vrfmsgs/ifControl.h"
22 #include "vrfcgf/cgf.h"
23 #include <vlutil/vlFilename.h>
25 
26 class DtIfControlMsg;
27 class DtTimer;
31 class DtIfSetFrameMode;
33 
34 namespace makVrfEvents
35 {
36  class DtEvent;
37 }
38 
42 #include "vrfcgf/vrfcgfDefines.h"
44 {
45 public:
53  DtVrfMessageInterface* messageIf,
54  int receivePort = 8000);
55 
56  virtual ~DtCgfDispatcher();
57 
59  virtual void closeScenario(DtIfCloseScenario* msg);
60  virtual void loadScenario(DtIfLoadScenario* msg);
61  virtual void reinitializeScenario();
62  virtual void reinitializeObjects(DtIfReinitializeObjects* content);
63 
66  virtual void saveScenario(DtIfSaveScenario* msg,
67  const DtSimulationAddress& requester);
68 
71  virtual void saveSimulationObjectGroup(DtIfSaveSimulationObjectGroup* msg,
72  const DtSimulationAddress& requester);
73 
76  virtual void createSimulationObjectGroup(DtIfCreateSimulationObjectGroup* msg,
77  const DtSimulationAddress& requester);
78 
80  virtual void importScenarioDescriptionFile(DtIfImportScenarioDescriptionFile*);
81 
83  virtual void exportScenarioDescriptionFile(DtIfExportScenarioDescriptionFile*);
84 
90  virtual void controlScenario(DtIfControl* msgData,
91  const DtSimulationAddress& sender);
92 
93  virtual void setEnableResourceMonitor(bool b);
94 
96  virtual void tick();
97 
99  virtual void setTimeToQuit(bool yesNo);
100  virtual bool timeToQuit() const;
101 
103  virtual void clearSimulationObjects();
104 
106  virtual DtVrfMessageInterface* messageInterface() const;
107 
109  virtual DtCgf* cgf() const;
110 
112  virtual int port() const;
113 
115  virtual const DtFilename& tempDirectory();
116  virtual void setTempDirectory(const DtFilename& f);
117 
121  virtual void cleanupSockets();
122 
123  virtual void processCapableTaskAndSetQuery(DtSimMessage* msg);
124  virtual void processDIGuyAppearAndAnimationsQuery(DtSimMessage* msg);
125 
126 public:
127 
128  typedef struct dtSimRunDurationUsrData
129  {
131  DtSimulationAddress replyTo;
133 
136  static void processMessageCb(DtSimMessage* msg, void* usr);
137 
140  static void setTimeMultiplierCallback(DtSimMessage* msg, void * usr);
141 
143  static void frameModeCallback(DtSimMessage* msg, void * usr);
144 
146  static void receiveFileCb(const DtFilename& f, void* usr);
147 
154  static void runDurationCompleteCallback(void* timer);
155  virtual void processRunDurationComplete(DtSimRunDurationUsrData*);
156 
158  virtual void processSetTimeMultiplier(const DtIfSetTimeMultiplier&
159  timeMultiplerData);
160 
162  virtual void processSetFrameMode(const DtIfSetFrameMode&
163  frameMode);
164 
165 protected:
169  virtual bool shouldTryReload(const DtScenario& scenario);
170 
174  virtual bool shouldTryReload(const DtIfImportScenarioDescriptionFile*);
175 
177  virtual void pause();
178 
180  virtual void run();
181 
183  virtual void rewind(int scenarioRunId = 0);
184 
187  virtual void step(const DtSimulationAddress& sender);
188 
198  virtual void runForDuration(double duration, const DtSimulationAddress& sender);
199 
200 protected:
201 
202  int myPort;
206  DtFilename myDir;
208 
214 
216 };
Definition: ifImportScenarioDescriptionFile.h:25
DtIfLoadScenario is a composite message containing all the elements needed to begin a simulation...
Definition: ifLoadScenario.h:21
Instances of DtTimer are used to maintain the information needed to represent some kind of scheduled ...
Definition: timer.h:38
class DtIfReinitializeObjects:
Definition: ifReinitializeObjects.h:22
Definition: scenario.h:52
DtFilename myDir
Definition: cgfDispatcher.h:206
Message sent to start the Export of a scenario file. Assumes scenario. file has aleady (or is in the ...
Definition: ifExportScenarioDescriptionFile.h:24
DtVrfMessageInterface * myMessageIf
Definition: cgfDispatcher.h:205
This class handles messages from the front-end for loading and saving scenarios, and controlling the ...
Definition: cgfDispatcher.h:43
class DtIfSaveScenario:
Definition: ifSaveScenario.h:23
DtCgf * myCgf
Definition: cgfDispatcher.h:204
class DtIfSaveSimulationObjectGroup:
Definition: ifSaveSimulationObjectGroup.h:22
Definition: cgfDispatcher.h:128
File: DtIfCreateSimulationObjectGroup.h.
Definition: ifCreateSimulationObjectGroup.h:22
File: ifControl.h.
Definition: ifControl.h:32
File: simMsg.h.
Definition: simMessage.h:35
Definition: compressedFileTransporter.h:24
class DtIfCloseScenario:
Definition: ifCloseScenario.h:27
DtCgfDispatcher * cgfDispatcher
Definition: cgfDispatcher.h:130
DtIfLoadScenario * myPendingLoadScenario
This pointer is used to keep a scenario load message in queue for those times that a load scenario me...
Definition: cgfDispatcher.h:213
Total: 9 bytes.
Definition: ifSetFrameMode.h:43
int myPort
Definition: cgfDispatcher.h:202
DtIfImportScenarioDescriptionFile * myPendingScenarioDescriptionImport
Definition: cgfDispatcher.h:215
The top level class of a VR-Forces Simulation Engine, representing a Computer Generated Forces instan...
Definition: cgf.h:156
Total: 64/64 bytes.
Definition: ifSetTimeMultiplier.h:45
#define DT_DLL_vrfcgf
This file is used to determine how to build.
Definition: vrfcgfDefines.h:25
DtSimulationAddress replyTo
Definition: cgfDispatcher.h:131
bool myTimeToQuit
Definition: cgfDispatcher.h:203
Definition: vrfMessageInterface.h:40
DtCompressedFileTransporter myTransporter
Definition: cgfDispatcher.h:207

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)