VR-Forces 4.2 Class Documentation
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 
12 #include <vrfutil/callbackList.h>
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 
116  virtual bool lookupScriptById(const std::string&, DtScriptedTaskMetaData&) const;
117 
124  virtual void modifyScenarioScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceScriptId = "", bool send = true,
125  bool keepScriptInMessage = false);
126 
130  virtual void removeScriptedTask(const std::string& id, bool send = true, bool scenarioOnly = true,
131  bool removeSystemScriptFromDisk = false);
132 
134  virtual bool loadScenarioScripts(const std::string&, bool send = true);
135 
137  virtual bool writeScenarioScripts(const std::string&);
138 
141  virtual bool removeScriptById(const std::string& s, bool scenarioOnly = true,
142  bool removeSystemScriptFromDisk = false);
143 
146  virtual void setSimulationModelSetScriptsDirectory(const std::string& s, bool send = true);
147 
149  virtual std::vector<std::string> tasksValidFor(const DtEntityType&, int force) const;
150 
152  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force) const;
153 
155  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force) const;
156 
158 
159  virtual void addScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
160  virtual void removeScriptedTaskChangedCallback(DtScriptedTaskManagerCallbackFcn fcn, void* usr);
162 
165  virtual void reportError(const std::string& scriptId, const std::string& error, bool sendReport = true);
166 
168  virtual void clearError(const std::string& scriptId);
169 
171 
172 
173  virtual void addSample(const std::string& scriptId, double sample);
174 
177  virtual void monitor(const std::string& scriptId, bool);
178 
181  virtual void setMonitorTime(double);
182 
185  virtual void addFrameRateReference(const std::string&);
186 
188  virtual void removeFrameRateReference(const std::string&);
189 
191 
193  virtual int scriptType(const std::string&) const;
194 
197  virtual void setDoctrines(const std::set<std::string>&);
198  virtual void addDoctrine(const std::string&, bool send = true);
199 
201  virtual bool removeDoctrine(const std::string&, bool send = true);
202  virtual const std::set<std::string>& doctrines() const;
203  virtual void clearDoctrines(bool send = true);
204  virtual void loadDoctrines(const DtFilename& f, bool send = true);
205  virtual void sendDoctrines();
206  virtual void sendDoctrineAssignments();
207  virtual void updateDoctrines(const DtScriptedTaskMetaData&);
208  virtual void saveDoctrines(const DtFilename& f) const;
209  virtual ScriptedTaskMetaDataList scriptsValidForDoctrine(const std::string&) const;
210  virtual std::string doctrineForForce(int) const;
211  virtual void setDoctrineForForce(const std::string&, int);
212  virtual void setDoctrineAssignments(const std::map<int, std::string>&);
213 
215  virtual bool renameDoctrine(const std::string& from, const std::string& to, bool send = true);
217 
218 protected:
220  static void requestScriptedTasks(DtSimMessage*, void*);
221  virtual void processRequestScriptedTasks(DtSimMessage*);
222 
224  static void scriptedTaskOperation(DtSimMessage*, void*);
225  virtual void processScriptedTaskOperation(DtSimMessage*);
226 
228  static void doctrinesOperation(DtSimMessage*, void*);
229  virtual void processDoctrinesOperation(DtSimMessage*);
230 
232  virtual void makeSystemScript(const std::string&);
233 
235  virtual void modifySystemScript(const std::string& scriptid, const std::string&);
236 
238  virtual void modifySystemScriptedTask(const DtScriptedTaskMetaData&, const std::string& sourceSciptId = "", bool send = true);
239 
241  virtual void modifyScript(const std::string& id, const std::string& script);
242 
244  virtual bool changeScenarioScriptScriptId(const std::string& from, const std::string& to);
245 
247  virtual void addTaskToTaskFactory(const std::string& id);
248 
250  virtual void removeTaskFromTaskFactory(const std::string& id);
251 
253  virtual void signalNewScriptedTask(const std::string&);
254 
256  virtual void loadDefaultScript(DtScriptedTaskMetaData&);
257 
260  static void tickCallback(void*);
261  virtual void tick();
262 
264  virtual void sendMonitorInformation();
265 
266 protected:
269 
273 
276 
282 
283  std::set<std::string> myDoctrines;
284  DtFilename myDoctrinesFile;
285 
286  typedef std::map<int, std::string> DoctrinesForForce;
288 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)