VR-Forces 5.0.2 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;
32 
33 namespace makVrfEvents
34 {
35  class DtEvent;
36 }
37 
41 #include "vrfcgf/vrfcgfDefines.h"
43 {
44 public:
52  DtVrfMessageInterface* messageIf,
53  int receivePort = 8000);
54 
55  virtual ~DtCgfDispatcher();
56 
58  virtual void closeScenario(DtIfCloseScenario* msg);
59  virtual void loadScenario(DtIfLoadScenario* msg);
60  virtual void reinitializeScenario();
61 
64  virtual void saveScenario(DtIfSaveScenario* msg,
65  const DtSimulationAddress& requester);
66 
69  virtual void saveSimulationObjectGroup(DtIfSaveSimulationObjectGroup* msg,
70  const DtSimulationAddress& requester);
71 
74  virtual void createSimulationObjectGroup(DtIfCreateSimulationObjectGroup* msg,
75  const DtSimulationAddress& requester);
76 
78  virtual void importScenarioDescriptionFile(DtIfImportScenarioDescriptionFile*);
79 
81  virtual void exportScenarioDescriptionFile(DtIfExportScenarioDescriptionFile*);
82 
88  virtual void controlScenario(DtIfControl* msgData,
89  const DtSimulationAddress& sender);
90 
91  virtual void setEnableResourceMonitor(bool b);
92 
94  virtual void tick();
95 
97  virtual void setTimeToQuit(bool yesNo);
98  virtual bool timeToQuit() const;
99 
101  virtual void clearSimulationObjects();
102 
104  virtual DtVrfMessageInterface* messageInterface() const;
105 
107  virtual DtCgf* cgf() const;
108 
110  virtual int port() const;
111 
113  virtual const DtFilename& tempDirectory();
114  virtual void setTempDirectory(const DtFilename& f);
115 
119  virtual void cleanupSockets();
120 
121  virtual void processCapableTaskAndSetQuery(DtSimMessage* msg);
122  virtual void processDIGuyAppearAndAnimationsQuery(DtSimMessage* msg);
123 
124 public:
125 
126  typedef struct dtSimRunDurationUsrData
127  {
129  DtSimulationAddress replyTo;
131 
134  static void processMessageCb(DtSimMessage* msg, void* usr);
135 
138  static void setTimeMultiplierCallback(DtSimMessage* msg, void * usr);
139 
141  static void frameModeCallback(DtSimMessage* msg, void * usr);
142 
144  static void receiveFileCb(const DtFilename& f, void* usr);
145 
152  static void runDurationCompleteCallback(void* timer);
153  virtual void processRunDurationComplete(DtSimRunDurationUsrData*);
154 
156  virtual void processSetTimeMultiplier(const DtIfSetTimeMultiplier&
157  timeMultiplerData);
158 
160  virtual void processSetFrameMode(const DtIfSetFrameMode&
161  frameMode);
162 
163 protected:
167  virtual bool shouldTryReload(const DtScenario& scenario);
168 
172  virtual bool shouldTryReload(const DtIfImportScenarioDescriptionFile*);
173 
175  virtual void pause();
176 
178  virtual void run();
179 
181  virtual void rewind(int scenarioRunId = 0);
182 
185  virtual void step(const DtSimulationAddress& sender);
186 
196  virtual void runForDuration(double duration, const DtSimulationAddress& sender);
197 
198 protected:
199 
200  int myPort;
204  DtFilename myDir;
206 
212 
214 };
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
Definition: scenario.h:52
DtFilename myDir
Definition: cgfDispatcher.h:204
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:203
This class handles messages from the front-end for loading and saving scenarios, and controlling the ...
Definition: cgfDispatcher.h:42
class DtIfSaveScenario:
Definition: ifSaveScenario.h:23
DtCgf * myCgf
Definition: cgfDispatcher.h:202
class DtIfSaveSimulationObjectGroup:
Definition: ifSaveSimulationObjectGroup.h:22
Definition: cgfDispatcher.h:126
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:128
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:211
Total: 9 bytes.
Definition: ifSetFrameMode.h:43
int myPort
Definition: cgfDispatcher.h:200
DtIfImportScenarioDescriptionFile * myPendingScenarioDescriptionImport
Definition: cgfDispatcher.h:213
The top level class of a VR-Forces Simulation Engine, representing a Computer Generated Forces instan...
Definition: cgf.h:144
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:129
bool myTimeToQuit
Definition: cgfDispatcher.h:201
Definition: vrfMessageInterface.h:40
DtCompressedFileTransporter myTransporter
Definition: cgfDispatcher.h:205

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)