VR-Forces 4.3 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 
13 #include "vrfutil/averager.h"
14 
15 class DtSimManager;
16 class DtSimMessage;
17 
22 
24 
31 
35 
37 {
38  int reason;
39 
42 
46 };
47 
50 
52 {
53 public:
54 
57  {
58  ScenarioSystemPair() : scenarioScript(0), systemScript(0), monitor(0), references(0), averager(0) {};
59  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy), monitor(0),
60  references(0), averager(0) {};
61 
62  DtScriptedTaskMetaData* scenarioScript;
65  int monitor;
67  std::string error;
68  };
69 
70  typedef std::map<std::string, ScenarioSystemPair> ScriptedTaskMetaDataList;
71  typedef std::map<std::string, ScriptedTaskMetaDataList> ScriptedTasksByDirectory;
72 
73 public:
76 
78  virtual ~DtScriptedTaskManager();
79 
80 private:
83 
85  DtScriptedTaskManager & operator=(const DtScriptedTaskManager & orig);
86 
87 public:
88  virtual DtSimManager* simManager() const;
89 
93  virtual void addAdditionSystemScriptDirectory(const std::string&, bool send = true);
94 
97  virtual void removeAllSystemScriptedTasksFromDirectory(const std::string&, bool send = true);
98 
100  virtual void removeAllScenarioScripts(bool send = true);
101 
103  virtual const ScriptedTasksByDirectory& scriptedTasksByDirectory() const;
104 
106  virtual const ScriptedTaskMetaDataList& scenarioScripts() const;
107 
109  virtual const ScriptedTaskMetaDataList& allScriptsById() const;
110 
112  virtual void sendRequestedScripts(DtU32 responseId = 0,
113  const std::vector<std::string>& scriptIds = std::vector<std::string>(), bool sendScripts = false,
114  const std::string& language = "");
115 
117  virtual bool lookupScriptById(const std::string&, DtScriptedTaskMetaData&) const;
118 
125  virtual void modifyScenarioScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceScriptId = "", bool send = true,
126  bool keepScriptInMessage = false);
127 
131  virtual void removeScriptedTask(const std::string& id, bool send = true, bool scenarioOnly = true,
132  bool removeSystemScriptFromDisk = false);
133 
135  virtual bool loadScenarioScripts(const std::string&, bool send = true);
136 
138  virtual bool writeScenarioScripts(const std::string&);
139 
142  virtual bool removeScriptById(const std::string& s, bool scenarioOnly = true,
143  bool removeSystemScriptFromDisk = false);
144 
147  virtual void setSimulationModelSetScriptsDirectory(const std::string& s, bool send = true);
148 
150  virtual std::vector<std::string> tasksValidFor(const DtEntityType&, int force) const;
151 
153  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force) const;
154 
156  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force) const;
157 
159 
160  virtual void addScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
161  virtual void removeScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
163 
166  virtual void reportError(const std::string& scriptId, const std::string& error, bool sendReport = true);
167 
169  virtual std::string findSystemDirectoryFor(const std::string& scriptId) const;
170 
172  virtual void clearError(const std::string& scriptId);
173 
175 
176 
177  virtual void addSample(const std::string& scriptId, double sample);
178 
181  virtual void monitor(const std::string& scriptId, bool);
182 
185  virtual void setMonitorTime(double);
186 
189  virtual void addFrameRateReference(const std::string&);
190 
192  virtual void removeFrameRateReference(const std::string&);
193 
195 
197  virtual int scriptType(const std::string&) const;
198 
201  virtual void setDoctrines(const std::set<std::string>&);
202  virtual void addDoctrine(const std::string&, bool send = true);
203 
205  virtual bool removeDoctrine(const std::string&, bool send = true);
206  virtual const std::set<std::string>& doctrines() const;
207  virtual void clearDoctrines(bool send = true);
208  virtual void loadDoctrines(const DtFilename& f, bool send = true);
209  virtual void sendDoctrines();
210  virtual void sendDoctrineAssignments();
211  virtual void updateDoctrines(const DtScriptedTaskMetaData&);
212  virtual void saveDoctrines(const DtFilename& f) const;
213  virtual ScriptedTaskMetaDataList scriptsValidForDoctrine(const std::string&) const;
214  virtual std::string doctrineForForce(int) const;
215  virtual void setDoctrineForForce(const std::string&, int);
216  virtual void setDoctrineAssignments(const std::map<int, std::string>&);
217 
219  virtual bool renameDoctrine(const std::string& from, const std::string& to, bool send = true);
221 
222 protected:
224  static void requestScriptedTasks(DtSimMessage*, void*);
225  virtual void processRequestScriptedTasks(DtSimMessage*);
226 
228  static void scriptedTaskOperation(DtSimMessage*, void*);
229  virtual void processScriptedTaskOperation(DtSimMessage*);
230 
232  static void doctrinesOperation(DtSimMessage*, void*);
233  virtual void processDoctrinesOperation(DtSimMessage*);
234 
236  virtual void makeSystemScript(const std::string&);
237 
239  virtual void modifySystemScript(const std::string& scriptid, const std::string&);
240 
242  virtual void modifySystemScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceSciptId = "", bool send = true);
243 
245  virtual void modifyScript(const std::string& id, const std::string& script);
246 
248  virtual bool changeScenarioScriptScriptId(const std::string& from, const std::string& to);
249 
251  virtual void addTaskToTaskFactory(const std::string& id);
252 
254  virtual void removeTaskFromTaskFactory(const std::string& id);
255 
257  virtual void signalNewScriptedTask(const std::string&);
258 
260  virtual void loadDefaultScript(DtScriptedTaskMetaData&);
261 
264  static void tickCallback(void*);
265  virtual void tick();
266 
268  virtual void sendMonitorInformation();
269 
270 protected:
273 
277 
280 
286 
287  std::set<std::string> myDoctrines;
288  DtFilename myDoctrinesFile;
289 
290  typedef std::map<int, std::string> DoctrinesForForce;
292 
293  std::vector<std::string> myScriptPaths;
294 };

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)