VR-Forces 4.5 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 
41 
43 {
44  DtScriptedTaskManagerCallbackInfo() : reason(0), flags(0) {};
46  : reason(orig.reason), flags(orig.flags), metaData(orig.metaData), originalData(orig.originalData) {};
47 
49  {
50  reason = orig.reason;
51  flags = orig.flags;
52  metaData = orig.metaData;
53  originalData = orig.originalData;
54 
55  return *this;
56  }
57 
58  int reason;
59  int flags;
60 
63 
67 };
68 
71 
73 {
74 public:
75 
78  {
79  ScenarioSystemPair() : scenarioScript(0), systemScript(0), monitor(0), references(0), averager(0) {};
80  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy), monitor(0),
81  references(0), averager(0) {};
82 
83  DtScriptedTaskMetaData* scenarioScript;
86  int monitor;
88  std::string error;
89  };
90 
91  typedef std::map<std::string, ScenarioSystemPair> ScriptedTaskMetaDataList;
92  typedef std::map<std::string, ScriptedTaskMetaDataList> ScriptedTasksByDirectory;
93 
94 public:
97 
99  virtual ~DtScriptedTaskManager();
100 
101 private:
104 
106  DtScriptedTaskManager & operator=(const DtScriptedTaskManager & orig);
107 
108 public:
109  virtual DtSimManager* simManager() const;
110 
114  virtual void addAdditionSystemScriptDirectory(const std::string&, bool send = true);
115 
118  virtual void removeAllSystemScriptedTasksFromDirectory(const std::string&, bool send = true);
119 
121  virtual void removeAllScenarioScripts(bool send = true);
122 
124  virtual const ScriptedTasksByDirectory& scriptedTasksByDirectory() const;
125 
127  virtual const ScriptedTaskMetaDataList& scenarioScripts() const;
128 
130  virtual const ScriptedTaskMetaDataList& allScriptsById() const;
131 
133  virtual void sendRequestedScripts(DtU32 responseId = 0,
134  const std::vector<std::string>& scriptIds = std::vector<std::string>(), bool sendScripts = false,
135  const std::string& language = "");
136 
138  virtual const DtScriptedTaskMetaData* lookupScriptById(const std::string&) const;
139 
146  virtual void modifyScenarioScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceScriptId = "", bool send = true,
147  bool keepScriptInMessage = false);
148 
152  virtual bool removeScriptedTask(const std::string& id, bool send = true, bool scenarioOnly = true,
153  bool removeSystemScriptFromDisk = false);
154 
156  virtual bool loadScenarioScripts(const DtFilename&, bool send = true);
157  virtual bool loadScenarioScriptsFromZipFile(const DtFilename& scenarioZipFile, const std::string&, bool send = true);
158 
160  virtual bool loadScenarioScripts(const std::string& str, bool send = true);
161 
163  virtual bool writeScenarioScripts(const DtFilename&);
164 
166  virtual bool writeScenarioScripts(std::string&);
167 
170  virtual bool removeScriptById(const std::string& s, bool scenarioOnly = true,
171  bool removeSystemScriptFromDisk = false);
172 
175  virtual void setSimulationModelSetScriptsDirectory(const std::string& s, bool send = true);
176 
178  virtual std::string simulationModelSetScriptsDirectory() const;
179 
181  virtual std::vector<std::string> tasksValidFor(const DtEntityType&, int force) const;
182 
184  virtual std::vector<std::string> setsValidFor(const DtEntityType&, int force) const;
185 
187  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force) const;
188 
190  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force) const;
191 
193 
194  virtual void addScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
195  virtual void removeScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
197 
200  virtual void reportError(const std::string& scriptId, const std::string& error, bool sendReport = true);
201 
203  virtual std::string findSystemDirectoryFor(const std::string& scriptId) const;
204 
206  virtual void clearError(const std::string& scriptId);
207 
209 
210 
211  virtual void addSample(const std::string& scriptId, double sample);
212 
215  virtual void monitor(const std::string& scriptId, bool);
216 
219  virtual void setMonitorTime(double);
220 
223  virtual void addFrameRateReference(const std::string&);
224 
226  virtual void removeFrameRateReference(const std::string&);
227 
229 
231  virtual int scriptType(const std::string&) const;
232 
235  virtual void setDoctrines(const std::set<std::string>&);
236  virtual void addDoctrine(const std::string&, bool send = true);
237 
239  virtual bool removeDoctrine(const std::string&, bool send = true);
240  virtual const std::set<std::string>& doctrines() const;
241  virtual void clearDoctrines(bool send = true);
242  virtual void loadDoctrines(const DtFilename& f, bool send = true);
243  virtual void sendDoctrines();
244  virtual void sendDoctrineAssignments();
245  virtual void updateDoctrines(const DtScriptedTaskMetaData&);
246  virtual void saveDoctrines(const DtFilename& f) const;
247  virtual ScriptedTaskMetaDataList scriptsValidForDoctrine(const std::string&) const;
248  virtual std::string doctrineForForce(int) const;
249  virtual void setDoctrineForForce(const std::string&, int);
250  virtual void setDoctrineAssignments(const std::map<int, std::string>&);
251 
253  virtual void setLanguage(const DtString&);
254  const DtString& language() const;
255 
257  virtual bool renameDoctrine(const std::string& from, const std::string& to, bool send = true);
259 
263  virtual void merge(DtScriptedTaskManager* mgr, std::vector<DtRwTranslatableStringObject>&);
264 
266  virtual DtScriptResourceManager* resourceManager(const DtString& type);
267 
269  virtual DtScriptResourceManagerMap& resourceManagers();
270 
271 protected:
273  static void requestScriptedTasks(DtSimMessage*, void*);
274  virtual void processRequestScriptedTasks(DtSimMessage*);
275 
276  virtual bool loadScenarioScripts(std::istream& ifs, bool send);
277 
279  static void scriptedTaskOperation(DtSimMessage*, void*);
280  virtual void processScriptedTaskOperation(DtSimMessage*);
281 
283  static void doctrinesOperation(DtSimMessage*, void*);
284  virtual void processDoctrinesOperation(DtSimMessage*);
285 
287  virtual void makeSystemScript(const std::string&);
288 
290  virtual void modifySystemScript(const std::string& scriptid, const std::string&);
291 
293  virtual void modifySystemScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceSciptId = "", bool send = true);
294 
296  virtual void modifyScript(const std::string& id, const std::string& script);
297 
299  virtual bool changeScenarioScriptScriptId(const std::string& from, const std::string& to);
300 
302  virtual void addTaskToTaskFactory(const std::string& id);
303 
305  virtual void removeTaskFromTaskFactory(const std::string& id);
306 
308  virtual void addSetToSetFactory(const std::string& id);
309 
311  virtual void removeSetFromSetFactory(const std::string& id);
312 
314  virtual void signalNewScriptedTask(const std::string&);
315 
317  virtual void loadDefaultScript(DtScriptedTaskMetaData&);
318 
321  static void tickCallback(void*);
322  virtual void tick();
323 
325  virtual void sendMonitorInformation();
326 
327  virtual void updateScenarioScripts(std::map<std::string, DtScriptedTaskMetaData>&, bool send);
328 
329 protected:
332 
336 
337  mutable std::map<std::string, ScriptedTaskMetaDataList> myMutableScriptsByDoctrine;
338 
341 
347 
348  std::set<std::string> myDoctrines;
349  DtFilename myDoctrinesFile;
350 
351  typedef std::map<int, std::string> DoctrinesForForce;
353 
354  std::vector<std::string> myScriptPaths;
356 
358 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)