VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptedTaskManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 #pragma once
9 
14 #include "vrfutil/averager.h"
17 
18 class DtSimManager;
19 class DtSimMessage;
20 class DtFilename;
22 
27 
29 
36 
40 
43 
45 {
46  DtScriptedTaskManagerCallbackInfo() : reason(0), flags(0) {};
48  : reason(orig.reason), flags(orig.flags), metaData(orig.metaData), originalData(orig.originalData) {};
49 
51  {
52  reason = orig.reason;
53  flags = orig.flags;
54  metaData = orig.metaData;
55  originalData = orig.originalData;
56 
57  return *this;
58  }
59 
60  int reason;
61  int flags;
62 
65 
69 };
70 
73 
75 {
76 public:
77 
80  {
81  ScenarioSystemPair() : scenarioScript(0), systemScript(0), monitor(0), references(0), averager(0) {};
82  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy), monitor(0),
83  references(0), averager(0) {};
84 
85  DtScriptedTaskMetaData* scenarioScript;
88  int monitor;
90  std::string error;
91  };
92 
93  typedef std::map<std::string, ScenarioSystemPair> ScriptedTaskMetaDataList;
94  typedef std::map<std::string, ScriptedTaskMetaDataList> ScriptedTasksByDirectory;
95 
96 public:
99 
101  virtual ~DtScriptedTaskManager();
102 
103 private:
106 
108  DtScriptedTaskManager & operator=(const DtScriptedTaskManager & orig);
109 
110 public:
111  virtual DtSimManager* simManager() const;
112 
116  virtual void addAdditionSystemScriptDirectory(const std::string&, bool send = true);
117 
120  virtual void removeAllSystemScriptedTasksFromDirectory(const std::string&, bool send = true);
121 
123  virtual void removeAllScenarioScripts(bool send = true);
124 
126  virtual const ScriptedTasksByDirectory& scriptedTasksByDirectory() const;
127 
129  virtual const ScriptedTaskMetaDataList& scenarioScripts() const;
130 
132  virtual const ScriptedTaskMetaDataList& allScriptsById() const;
133 
135  virtual void sendRequestedScripts(DtU32 responseId = 0,
136  const std::vector<std::string>& scriptIds = std::vector<std::string>(), bool sendScripts = false, bool sendUiLayout = false,
137  const std::string& language = "");
138 
140  virtual const DtScriptedTaskMetaData* lookupScriptById(const DtGenericMessageType& scriptId) const;
141  virtual const DtScriptedTaskMetaData* lookupScriptById(const DtSetMessageType& scriptId) const;
142  virtual const DtScriptedTaskMetaData* lookupScriptById(const DtSimTaskMessageType& scriptId) const;
143  virtual const DtScriptedTaskMetaData* lookupScriptById(const std::string&) const;
144 
151  virtual void modifyScenarioScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceScriptId = "", bool send = true,
152  bool keepScriptInMessage = false, bool keepLayoutInMessage = false);
153 
157  virtual bool removeScriptedTask(const std::string& id, bool send = true, bool scenarioOnly = true,
158  bool removeSystemScriptFromDisk = false);
159 
161  virtual bool loadScenarioScripts(const DtFilename&, bool send = true);
162  virtual bool loadScenarioScriptsFromZipFile(const DtFilename& scenarioZipFile, const std::string&, bool send = true);
163 
165  virtual bool loadScenarioScripts(const std::string& str, bool send = true);
166 
168  virtual bool writeScenarioScripts(const DtFilename&);
169 
171  virtual bool writeScenarioScripts(std::string&);
172 
175  virtual bool removeScriptById(const std::string& s, bool scenarioOnly = true,
176  bool removeSystemScriptFromDisk = false);
177 
180  virtual void setSimulationModelSetScriptsDirectory(const std::string& s, bool send = true);
181 
183  virtual std::string simulationModelSetScriptsDirectory() const;
184 
186  virtual std::vector<DtSimTaskMessageType> tasksValidFor(const DtEntityType&, int force) const;
187 
189  virtual std::vector<DtSetMessageType> setsValidFor(const DtEntityType&, int force) const;
190 
192  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(const DtEntityType&, int force) const;
193 
195  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force) const;
196 
198 
199  virtual void addScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
200  virtual void removeScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
202 
205  virtual void reportError(const DtGenericMessageType& scriptId, const std::string& error, bool sendReport = true);
206  virtual void reportError(const DtSimTaskMessageType& scriptId, const std::string& error, bool sendReport = true);
207  virtual void reportError(const DtSetMessageType& scriptId, const std::string& error, bool sendReport = true);
208  virtual void reportError(const std::string& scriptId, const std::string& error, bool sendReport = true);
209 
211  virtual std::string findSystemDirectoryFor(const std::string& scriptId) const;
212 
214  virtual void clearError(const DtGenericMessageType& scriptId);
215  virtual void clearError(const DtSimTaskMessageType& scriptId);
216  virtual void clearError(const DtSetMessageType& scriptId);
217  virtual void clearError(const std::string& scriptId);
218 
220  virtual void addSample(const DtGenericMessageType& scriptId, double sample);
223  virtual void addSample(const DtSetMessageType& scriptId, double sample);
224  virtual void addSample(const DtSimTaskMessageType& scriptId, double sample);
225  virtual void addSample(const std::string& scriptId, double sample);
226 
229  virtual void monitor(const std::string& scriptId, bool);
230 
233  virtual void setMonitorTime(double);
234 
237  virtual void addFrameRateReference(const DtGenericMessageType&);
238  virtual void addFrameRateReference(const DtSimTaskMessageType&);
239  virtual void addFrameRateReference(const DtSetMessageType&);
240  virtual void addFrameRateReference(const std::string&);
241 
243  virtual void removeFrameRateReference(const DtGenericMessageType& scriptId);
244  virtual void removeFrameRateReference(const DtSetMessageType& scriptId);
245  virtual void removeFrameRateReference(const DtSimTaskMessageType& scriptId);
246  virtual void removeFrameRateReference(const std::string&);
247 
249 
251  virtual int scriptType(const DtGenericMessageType& scriptId) const;
252  virtual int scriptType(const DtSetMessageType& scriptId) const;
253  virtual int scriptType(const DtSimTaskMessageType& scriptId) const;
254  virtual int scriptType(const std::string&) const;
255 
258  virtual DtGenericMessageType remapScriptId(const DtGenericMessageType& scriptId) const;
259  virtual DtSetMessageType remapScriptId(const DtSetMessageType& scriptId) const;
260  virtual DtSimTaskMessageType remapScriptId(const DtSimTaskMessageType& scriptId) const;
261  virtual std::string remapScriptId(const std::string& scriptId) const;
262 
265  virtual void setDoctrines(const std::set<std::string>&);
266  virtual void addDoctrine(const std::string&, bool send = true);
267 
269  virtual bool removeDoctrine(const std::string&, bool send = true);
270  virtual const std::set<std::string>& doctrines() const;
271  virtual void clearDoctrines(bool send = true);
272  virtual void loadDoctrines(const DtFilename& f, bool send = true);
273  virtual void sendDoctrines();
274  virtual void sendDoctrineAssignments();
275  virtual void updateDoctrines(const DtScriptedTaskMetaData&);
276  virtual void saveDoctrines(const DtFilename& f) const;
277  virtual ScriptedTaskMetaDataList scriptsValidForDoctrine(const std::string&) const;
278  virtual std::string doctrineForForce(int) const;
279  virtual void setDoctrineForForce(const std::string&, int);
280  virtual void setDoctrineAssignments(const std::map<int, std::string>&);
281 
283  virtual void setLanguage(const DtString&);
284  const DtString& language() const;
285 
287  virtual bool renameDoctrine(const std::string& from, const std::string& to, bool send = true);
289 
293  virtual void merge(DtScriptedTaskManager* mgr, std::vector<DtRwTranslatableStringObject>&);
294 
296  virtual DtScriptResourceManager* resourceManager(const DtString& type);
297 
299  virtual DtScriptResourceManagerMap& resourceManagers();
300 
301 protected:
303  static void requestScriptedTasks(DtSimMessage*, void*);
304  virtual void processRequestScriptedTasks(DtSimMessage*);
305 
306  virtual bool loadScenarioScripts(std::istream& ifs, bool send);
307 
309  static void scriptedTaskOperation(DtSimMessage*, void*);
310  virtual void processScriptedTaskOperation(DtSimMessage*);
311 
313  static void doctrinesOperation(DtSimMessage*, void*);
314  virtual void processDoctrinesOperation(DtSimMessage*);
315 
317  virtual void makeSystemScript(const std::string&);
318 
320  virtual void modifySystemScript(const std::string& scriptid, const std::string&);
321 
323  virtual void modifySystemLayout(const std::string& scriptid, const std::string&);
324 
326  virtual void modifySystemScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceSciptId = "", bool send = true);
327 
329  virtual void modifyScript(const std::string& id, const std::string& script);
330 
332  virtual void modifyLayout(const std::string& id, const std::string& script);
333 
335  virtual bool changeScriptScriptId(const DtIfScriptedTaskOperation&, bool& needsCompleteResend);
336 
338  virtual void addTaskToTaskFactory(const std::string& id);
339 
341  virtual void removeTaskFromTaskFactory(const std::string& id);
342 
344  virtual void addSetToSetFactory(const std::string& id);
345 
347  virtual void removeSetFromSetFactory(const std::string& id);
348 
350  virtual void signalNewScriptedTask(const std::string&);
351 
353  virtual void loadDefaultScript(DtScriptedTaskMetaData&);
354 
356  virtual void loadDefaultUiLayout(DtScriptedTaskMetaData&);
357 
360  static void tickCallback(void*);
361  virtual void tick();
362 
364  virtual void sendMonitorInformation();
365 
366  virtual void updateScenarioScripts(std::map<std::string, DtScriptedTaskMetaData>&, bool send);
367 
368 protected:
371 
375 
376  mutable std::map<std::string, ScriptedTaskMetaDataList> myMutableScriptsByDoctrine;
377 
380 
386 
387  std::set<std::string> myDoctrines;
388  DtFilename myDoctrinesFile;
389 
390  typedef std::map<int, std::string> DoctrinesForForce;
392 
393  std::vector<std::string> myScriptPaths;
395 
397  std::map<std::string, std::string> myScriptIdToScriptIdMap;
398 };
class DtAverager:
Definition: averager.h:26
std::map< int, std::string > DoctrinesForForce
Definition: scriptedTaskManager.h:390
std::set< std::string > myDoctrines
Definition: scriptedTaskManager.h:387
DtFilename myDoctrinesFile
Definition: scriptedTaskManager.h:388
ScenarioSystemPair(DtScriptedTaskMetaData *sc, DtScriptedTaskMetaData *sy)
Definition: scriptedTaskManager.h:82
const int DtScriptedTaskManagerCallbackInfoDoctrineChangedBase
If the doctrine has changed, this is the base for that.
Definition: scriptedTaskManager.h:39
DtCallbackList< const DtScriptedTaskManagerCallbackInfo & > DtScriptedTaskChangedCallbackList
Definition: scriptedTaskManager.h:378
Definition: scriptedTaskManager.h:74
ScriptedTaskMetaDataList myScenarioScripts
Definition: scriptedTaskManager.h:373
DtAverager * averager
Definition: scriptedTaskManager.h:87
int myMonitoringScripts
Definition: scriptedTaskManager.h:384
DtScriptedTaskMetaData originalData
If the reason is update this member will be filled in.
Definition: scriptedTaskManager.h:68
double myLastMonitorSentTime
Definition: scriptedTaskManager.h:382
DoctrinesForForce myDoctrinesForForce
Definition: scriptedTaskManager.h:391
DtScriptedTaskManagerCallbackInfo()
Definition: scriptedTaskManager.h:46
int myMonitoringAll
Definition: scriptedTaskManager.h:383
std::map< std::string, std::string > myScriptIdToScriptIdMap
Definition: scriptedTaskManager.h:397
DtString myLastLanguageRequested
Definition: scriptedTaskManager.h:394
const int DtScriptedTaskManagerCallbackInfoScriptChanged
Definition: scriptedTaskManager.h:34
int references
Definition: scriptedTaskManager.h:89
const int DtScriptedTaskManagerCallbackInfoScriptIdChanged
Definition: scriptedTaskManager.h:33
int reason
Definition: scriptedTaskManager.h:60
std::map< DtString, DtScriptResourceManager * > DtScriptResourceManagerMap
Definition: scriptResourceManager.h:39
const int DtScriptedTaskManagerCallbackInfoUpdated
Definition: scriptedTaskManager.h:32
std::string mySimulationModelSetScriptsDirectory
Definition: scriptedTaskManager.h:370
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
double myMonitorTime
Definition: scriptedTaskManager.h:381
DtCallbackList< const DtScriptedTaskManagerCallbackInfo & >::DtCallbackFunctionType DtScriptedTaskManagerCallbackFcn
Callback function definition for any kind of scripted task change.
Definition: scriptedTaskManager.h:72
std::map< std::string, ScenarioSystemPair > ScriptedTaskMetaDataList
Definition: scriptedTaskManager.h:93
DtScriptedTaskManagerCallbackInfo & operator=(const DtScriptedTaskManagerCallbackInfo &orig)
Definition: scriptedTaskManager.h:50
const int DtScriptedTaskManagerCallbackInfoScriptTypeChanged
Definition: scriptedTaskManager.h:35
File: simMsg.h.
Definition: simMessage.h:35
const int DtScriptedTaskManagerCallbackInfoAdded
The scripted task manager contains information about all system level scripted tasks (loaded from the...
Definition: scriptedTaskManager.h:30
Definition: noArgumentCallbackList.h:91
DtSimManager * mySimManager
Definition: scriptedTaskManager.h:369
const int DtScriptedTaskManagerCallbackFlagScenarioScriptExists
Flag to tell that the system script is still around.
Definition: scriptedTaskManager.h:42
Definition: asyncJobServer.h:39
int monitor
Definition: scriptedTaskManager.h:88
std::string error
Definition: scriptedTaskManager.h:90
ScenarioSystemPair()
Definition: scriptedTaskManager.h:81
Definition: ifScriptedTaskOperation.h:41
DtScriptedTaskChangedCallbackList myScriptedTaskChangedCallbackList
Definition: scriptedTaskManager.h:379
Definition: scriptedTaskManager.h:44
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
Manages resources shared by scripts.
Definition: scriptResourceManager.h:15
Map is by unique id of script.
Definition: scriptedTaskManager.h:79
ScriptedTasksByDirectory mySystemScriptedTasks
Definition: scriptedTaskManager.h:372
const int DtScriptedTaskManagerCallbackInfoRemoved
Definition: scriptedTaskManager.h:31
ScriptedTaskMetaDataList myAllScriptsById
Definition: scriptedTaskManager.h:374
DtScriptedTaskMetaData metaData
If reason is delete the meta data will only contain the script id.
Definition: scriptedTaskManager.h:64
std::map< std::string, ScriptedTaskMetaDataList > ScriptedTasksByDirectory
Definition: scriptedTaskManager.h:94
std::vector< std::string > myScriptPaths
Definition: scriptedTaskManager.h:393
Definition: scriptedTaskMetaData.h:48
bool mySendMonitorMessage
Definition: scriptedTaskManager.h:385
DtScriptResourceManagerMap myScriptResourceManagers
Definition: scriptedTaskManager.h:396
DtScriptedTaskManagerCallbackInfo(const DtScriptedTaskManagerCallbackInfo &orig)
Definition: scriptedTaskManager.h:47
std::map< std::string, ScriptedTaskMetaDataList > myMutableScriptsByDoctrine
Definition: scriptedTaskManager.h:376
DtScriptedTaskMetaData * systemScript
Definition: scriptedTaskManager.h:86
int flags
Definition: scriptedTaskManager.h:61

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)