VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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"
16 
17 class DtSimManager;
18 class DtSimMessage;
19 class DtFilename;
20 
25 
27 
34 
38 
40 {
41  int reason;
42 
45 
49 };
50 
53 
55 {
56 public:
57 
60  {
61  ScenarioSystemPair() : scenarioScript(0), systemScript(0), monitor(0), references(0), averager(0) {};
62  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy), monitor(0),
63  references(0), averager(0) {};
64 
65  DtScriptedTaskMetaData* scenarioScript;
68  int monitor;
70  std::string error;
71  };
72 
73  typedef std::map<std::string, ScenarioSystemPair> ScriptedTaskMetaDataList;
74  typedef std::map<std::string, ScriptedTaskMetaDataList> ScriptedTasksByDirectory;
75 
76 public:
79 
81  virtual ~DtScriptedTaskManager();
82 
83 private:
86 
88  DtScriptedTaskManager & operator=(const DtScriptedTaskManager & orig);
89 
90 public:
91  virtual DtSimManager* simManager() const;
92 
96  virtual void addAdditionSystemScriptDirectory(const std::string&, bool send = true);
97 
100  virtual void removeAllSystemScriptedTasksFromDirectory(const std::string&, bool send = true);
101 
103  virtual void removeAllScenarioScripts(bool send = true);
104 
106  virtual const ScriptedTasksByDirectory& scriptedTasksByDirectory() const;
107 
109  virtual const ScriptedTaskMetaDataList& scenarioScripts() const;
110 
112  virtual const ScriptedTaskMetaDataList& allScriptsById() const;
113 
115  virtual void sendRequestedScripts(DtU32 responseId = 0,
116  const std::vector<std::string>& scriptIds = std::vector<std::string>(), bool sendScripts = false,
117  const std::string& language = "");
118 
120  virtual const DtScriptedTaskMetaData* lookupScriptById(const std::string&) const;
121 
128  virtual void modifyScenarioScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceScriptId = "", bool send = true,
129  bool keepScriptInMessage = false);
130 
134  virtual void removeScriptedTask(const std::string& id, bool send = true, bool scenarioOnly = true,
135  bool removeSystemScriptFromDisk = false);
136 
138  virtual bool loadScenarioScripts(const DtFilename&, bool send = true);
139 
141  virtual bool loadScenarioScripts(const std::string& str, bool send = true);
142 
144  virtual bool writeScenarioScripts(const DtFilename&);
145 
147  virtual bool writeScenarioScripts(std::string&);
148 
151  virtual bool removeScriptById(const std::string& s, bool scenarioOnly = true,
152  bool removeSystemScriptFromDisk = false);
153 
156  virtual void setSimulationModelSetScriptsDirectory(const std::string& s, bool send = true);
157 
159  virtual std::string simulationModelSetScriptsDirectory() const;
160 
162  virtual std::vector<std::string> tasksValidFor(const DtEntityType&, int force) const;
163 
165  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force) const;
166 
168  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force) const;
169 
171 
172  virtual void addScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
173  virtual void removeScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
175 
178  virtual void reportError(const std::string& scriptId, const std::string& error, bool sendReport = true);
179 
181  virtual std::string findSystemDirectoryFor(const std::string& scriptId) const;
182 
184  virtual void clearError(const std::string& scriptId);
185 
187 
188 
189  virtual void addSample(const std::string& scriptId, double sample);
190 
193  virtual void monitor(const std::string& scriptId, bool);
194 
197  virtual void setMonitorTime(double);
198 
201  virtual void addFrameRateReference(const std::string&);
202 
204  virtual void removeFrameRateReference(const std::string&);
205 
207 
209  virtual int scriptType(const std::string&) const;
210 
213  virtual void setDoctrines(const std::set<std::string>&);
214  virtual void addDoctrine(const std::string&, bool send = true);
215 
217  virtual bool removeDoctrine(const std::string&, bool send = true);
218  virtual const std::set<std::string>& doctrines() const;
219  virtual void clearDoctrines(bool send = true);
220  virtual void loadDoctrines(const DtFilename& f, bool send = true);
221  virtual void sendDoctrines();
222  virtual void sendDoctrineAssignments();
223  virtual void updateDoctrines(const DtScriptedTaskMetaData&);
224  virtual void saveDoctrines(const DtFilename& f) const;
225  virtual ScriptedTaskMetaDataList scriptsValidForDoctrine(const std::string&) const;
226  virtual std::string doctrineForForce(int) const;
227  virtual void setDoctrineForForce(const std::string&, int);
228  virtual void setDoctrineAssignments(const std::map<int, std::string>&);
229 
231  virtual void setLanguage(const DtString&);
232  const DtString& language() const;
233 
235  virtual bool renameDoctrine(const std::string& from, const std::string& to, bool send = true);
237 
241  virtual void merge(DtScriptedTaskManager* mgr, std::vector<DtRwTranslatableStringObject>&);
242 
244  virtual DtScriptResourceManager* resourceManager(const DtString& type);
245 
247  virtual DtScriptResourceManagerMap& resourceManagers();
248 
249 protected:
251  static void requestScriptedTasks(DtSimMessage*, void*);
252  virtual void processRequestScriptedTasks(DtSimMessage*);
253 
255  static void scriptedTaskOperation(DtSimMessage*, void*);
256  virtual void processScriptedTaskOperation(DtSimMessage*);
257 
259  static void doctrinesOperation(DtSimMessage*, void*);
260  virtual void processDoctrinesOperation(DtSimMessage*);
261 
263  virtual void makeSystemScript(const std::string&);
264 
266  virtual void modifySystemScript(const std::string& scriptid, const std::string&);
267 
269  virtual void modifySystemScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceSciptId = "", bool send = true);
270 
272  virtual void modifyScript(const std::string& id, const std::string& script);
273 
275  virtual bool changeScenarioScriptScriptId(const std::string& from, const std::string& to);
276 
278  virtual void addTaskToTaskFactory(const std::string& id);
279 
281  virtual void removeTaskFromTaskFactory(const std::string& id);
282 
284  virtual void signalNewScriptedTask(const std::string&);
285 
287  virtual void loadDefaultScript(DtScriptedTaskMetaData&);
288 
291  static void tickCallback(void*);
292  virtual void tick();
293 
295  virtual void sendMonitorInformation();
296 
297  virtual void updateScenarioScripts(std::map<std::string, DtScriptedTaskMetaData>&, bool send);
298 
299 protected:
302 
306 
307  mutable std::map<std::string, ScriptedTaskMetaDataList> myMutableScriptsByDoctrine;
308 
311 
317 
318  std::set<std::string> myDoctrines;
319  DtFilename myDoctrinesFile;
320 
321  typedef std::map<int, std::string> DoctrinesForForce;
323 
324  std::vector<std::string> myScriptPaths;
326 
328 };

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)