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 
13 #include "vrfutil/averager.h"
15 
16 class DtSimManager;
17 class DtSimMessage;
18 
23 
25 
32 
36 
38 {
39  int reason;
40 
43 
47 };
48 
51 
53 {
54 public:
55 
58  {
59  ScenarioSystemPair() : scenarioScript(0), systemScript(0), monitor(0), references(0), averager(0) {};
60  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy), monitor(0),
61  references(0), averager(0) {};
62 
63  DtScriptedTaskMetaData* scenarioScript;
66  int monitor;
68  std::string error;
69  };
70 
71  typedef std::map<std::string, ScenarioSystemPair> ScriptedTaskMetaDataList;
72  typedef std::map<std::string, ScriptedTaskMetaDataList> ScriptedTasksByDirectory;
73 
74 public:
77 
79  virtual ~DtScriptedTaskManager();
80 
81 private:
84 
86  DtScriptedTaskManager & operator=(const DtScriptedTaskManager & orig);
87 
88 public:
89  virtual DtSimManager* simManager() const;
90 
94  virtual void addAdditionSystemScriptDirectory(const std::string&, bool send = true);
95 
98  virtual void removeAllSystemScriptedTasksFromDirectory(const std::string&, bool send = true);
99 
101  virtual void removeAllScenarioScripts(bool send = true);
102 
104  virtual const ScriptedTasksByDirectory& scriptedTasksByDirectory() const;
105 
107  virtual const ScriptedTaskMetaDataList& scenarioScripts() const;
108 
110  virtual const ScriptedTaskMetaDataList& allScriptsById() const;
111 
113  virtual void sendRequestedScripts(DtU32 responseId = 0,
114  const std::vector<std::string>& scriptIds = std::vector<std::string>(), bool sendScripts = false,
115  const std::string& language = "");
116 
118  virtual bool lookupScriptById(const std::string&, DtScriptedTaskMetaData&) const;
119 
126  virtual void modifyScenarioScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceScriptId = "", bool send = true,
127  bool keepScriptInMessage = false);
128 
132  virtual void removeScriptedTask(const std::string& id, bool send = true, bool scenarioOnly = true,
133  bool removeSystemScriptFromDisk = false);
134 
136  virtual bool loadScenarioScripts(const std::string&, bool send = true);
137 
139  virtual bool writeScenarioScripts(const std::string&);
140 
143  virtual bool removeScriptById(const std::string& s, bool scenarioOnly = true,
144  bool removeSystemScriptFromDisk = false);
145 
148  virtual void setSimulationModelSetScriptsDirectory(const std::string& s, bool send = true);
149 
151  virtual std::vector<std::string> tasksValidFor(const DtEntityType&, int force) const;
152 
154  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force) const;
155 
157  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force) const;
158 
160 
161  virtual void addScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
162  virtual void removeScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
164 
167  virtual void reportError(const std::string& scriptId, const std::string& error, bool sendReport = true);
168 
170  virtual std::string findSystemDirectoryFor(const std::string& scriptId) const;
171 
173  virtual void clearError(const std::string& scriptId);
174 
176 
177 
178  virtual void addSample(const std::string& scriptId, double sample);
179 
182  virtual void monitor(const std::string& scriptId, bool);
183 
186  virtual void setMonitorTime(double);
187 
190  virtual void addFrameRateReference(const std::string&);
191 
193  virtual void removeFrameRateReference(const std::string&);
194 
196 
198  virtual int scriptType(const std::string&) const;
199 
202  virtual void setDoctrines(const std::set<std::string>&);
203  virtual void addDoctrine(const std::string&, bool send = true);
204 
206  virtual bool removeDoctrine(const std::string&, bool send = true);
207  virtual const std::set<std::string>& doctrines() const;
208  virtual void clearDoctrines(bool send = true);
209  virtual void loadDoctrines(const DtFilename& f, bool send = true);
210  virtual void sendDoctrines();
211  virtual void sendDoctrineAssignments();
212  virtual void updateDoctrines(const DtScriptedTaskMetaData&);
213  virtual void saveDoctrines(const DtFilename& f) const;
214  virtual ScriptedTaskMetaDataList scriptsValidForDoctrine(const std::string&) const;
215  virtual std::string doctrineForForce(int) const;
216  virtual void setDoctrineForForce(const std::string&, int);
217  virtual void setDoctrineAssignments(const std::map<int, std::string>&);
218 
220  virtual void setLanguage(const DtString&);
221  const DtString& language() const;
222 
224  virtual bool renameDoctrine(const std::string& from, const std::string& to, bool send = true);
226 
230  virtual void merge(DtScriptedTaskManager* mgr, std::vector<DtRwTranslatableStringObject>&);
231 
232 protected:
234  static void requestScriptedTasks(DtSimMessage*, void*);
235  virtual void processRequestScriptedTasks(DtSimMessage*);
236 
238  static void scriptedTaskOperation(DtSimMessage*, void*);
239  virtual void processScriptedTaskOperation(DtSimMessage*);
240 
242  static void doctrinesOperation(DtSimMessage*, void*);
243  virtual void processDoctrinesOperation(DtSimMessage*);
244 
246  virtual void makeSystemScript(const std::string&);
247 
249  virtual void modifySystemScript(const std::string& scriptid, const std::string&);
250 
252  virtual void modifySystemScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceSciptId = "", bool send = true);
253 
255  virtual void modifyScript(const std::string& id, const std::string& script);
256 
258  virtual bool changeScenarioScriptScriptId(const std::string& from, const std::string& to);
259 
261  virtual void addTaskToTaskFactory(const std::string& id);
262 
264  virtual void removeTaskFromTaskFactory(const std::string& id);
265 
267  virtual void signalNewScriptedTask(const std::string&);
268 
270  virtual void loadDefaultScript(DtScriptedTaskMetaData&);
271 
274  static void tickCallback(void*);
275  virtual void tick();
276 
278  virtual void sendMonitorInformation();
279 
280 protected:
283 
287 
290 
296 
297  std::set<std::string> myDoctrines;
298  DtFilename myDoctrinesFile;
299 
300  typedef std::map<int, std::string> DoctrinesForForce;
302 
303  std::vector<std::string> myScriptPaths;
305 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)