VR-Forces 4.7 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 
221 
222  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 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)