VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfScriptedTaskManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
16 #include <vrvUtil/signalslib.h>
17 #include <vrvCore/DtUniqueID.h>
19 #include <vrvCore/DtDe.h>
20 #include <vlpi/simulationAddress.h>
22 
23 #include <boost/function.hpp>
24 
25 class DtSimMessage;
26 
29 class QWidget;
30 
31 namespace makVrf
32 {
33  class DtVrfBackendState;
34 
38  {
39  public:
40  typedef std::map<int, makVrv::DtUnicode> ScriptedTaskTypeNames;
41  typedef std::map<bool, std::string> IconType;
42  typedef std::map<int, std::string> DoctrinesByForce;
43 
45  {
48  };
49 
50  typedef std::map<int, ScriptedTaskDialogInformation> ScriptedTaskTypeInformation;
51 
53  {
54  ScenarioSystemPair() : scenarioScript(0), systemScript(0) {};
55  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy) {};
56 
57  DtScriptedTaskMetaData* scenarioScript;
59  std::string scriptError;
60  bool modified;
61  };
62 
63  typedef std::map<std::string, ScenarioSystemPair> ScriptedTasks;
64  typedef std::pair<std::string, bool> ActionCategory;
65  typedef std::set<std::string> Doctrines;
66  typedef std::map<std::string, ActionCategory> ActionCategories;
67 
69  {
71  std::string scriptError;
72  };
73 
74  typedef std::map<std::string, PreservedScript> PreservedScripts;
75 
76  public:
78  virtual ~DtVrfScriptedTaskManager();
79 
81  static DtVrfScriptedTaskManager& instance(makVrv::DtDe& de);
82  static void registerInstance(makVrv::DtDe&, DtVrfScriptedTaskManager*);
83 
87  virtual void clear(bool andSetting = true, bool reset = true, bool signal = true);
88 
91  virtual void removeScriptedTaskMetaData(const std::string& scriptedTaskId, bool signal = true);
92 
94  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId, bool system) const;
95 
97  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId) const;
98 
101  virtual void addScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, bool addScript = false);
102 
105  virtual void duplicateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& sourceId);
106 
110  virtual void updateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& originalId = "");
111 
113  virtual void deleteScriptedTaskMetaData(const std::string&);
114 
116  virtual void addScriptedTaskMetaData(const DtScriptedTaskMetaData&, bool signal = true);
117 
120  virtual void requestScriptedTasks();
121 
123  virtual bool isSystemScript(const std::string&) const;
124 
126  virtual bool appearsOnMenu(const std::string&) const;
127 
129  virtual bool appearsOnToolbar(const std::string&) const;
130 
132  virtual bool systemScriptAvailable(const std::string&) const;
133 
135  virtual void setSystemScriptAvailable(const std::string& id, bool);
136 
138  virtual void removeSystemScript(const std::string& id, bool signal = true);
139 
141  virtual const ScriptedTasks& scriptedTaskMetaData() const;
142 
144  virtual bool hasScriptedTaskMetaData(const std::string&) const;
145  virtual bool hasScenarioScriptedTaskMetaData(const std::string&) const;
146  virtual bool hasSystemScriptedTaskMetaData(const std::string&) const;
147 
149  virtual bool hasDoctrine(const std::string&) const;
150 
154  virtual std::string uniqueScriptIdFrom(const std::string&,
155  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
156 
160  virtual void makeSystemScript(const std::string&);
161 
163  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
164 
166  virtual void clearScriptError(const std::string& scriptId);
167 
170  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
171 
173  virtual bool scriptIsModified(const std::string& scriptId) const;
174 
176  virtual void setScriptModified(const std::string& scriptId, bool);
177 
179  virtual void clearModifiedScripts();
180 
184  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
185 
187  virtual bool hasModifiedScripts() const;
188 
190  virtual void preserveModifiedScripts();
191 
193  virtual void restorePreservedScripts();
194 
196  virtual int mapScriptToAction(const DtScriptedTaskMetaData& script, bool addIfMissing = true);
197 
199  virtual void unmapScript(const DtScriptedTaskMetaData&);
200 
202  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
203 
205  virtual const ActionCategories& actionCategories() const;
206 
208  virtual const Doctrines& doctrines() const;
209 
211  virtual void requestScriptsIfNeeded();
212 
216  virtual void addScriptedTaskType(int, const makVrv::DtUnicode& name);
217  virtual void addScriptedTaskTypeIcon(int, bool isSystemIcon, const std::string&);
218  virtual makVrv::DtUnicode getScriptedTaskTypeName(int) const;
219  virtual std::string getScriptedTaskTypeIcon(int, bool isSystemScrript) const;
220  virtual ScriptedTaskTypeNames getScriptedTaskTypes() const;
221  virtual void removeScriptedTaskType(int);
223 
225  virtual std::vector<std::string> scriptedTasksValidFor(const DtEntityType&, int force = -1) const;
226 
228  virtual std::vector<std::string> scriptedSetsValidFor(const DtEntityType&, int force = -1) const;
229 
231  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force = -1) const;
232 
234  virtual std::vector<std::string> backgroundProcessesValidFor(const DtEntityType&, int force = -1) const;
235 
237  virtual std::vector<std::string> scriptedTasksValidFor(makVrv::DtUniqueID) const;
238 
240  virtual std::vector<std::string> reactiveTasksValidFor(makVrv::DtUniqueID) const;
241 
243  virtual std::vector<std::string> backgroundProcessesValidFor(makVrv::DtUniqueID) const;
244 
246  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force = -1) const;
247 
249  virtual std::vector<std::string> scriptsThatSupportDoctrine(const std::string&) const;
250 
252  virtual int scriptedTaskTypeFor(const makVrv::DtUnicode&) const;
253 
255  virtual std::string formatScript(const std::string& script, int scriptType, const std::string& commentBlock) const;
256 
258  const DoctrinesByForce& doctrinesByForce() const
259  {
260  return myDoctrinesByForce;
261  }
262 
264  virtual const std::set<DtString>& scriptedTasksToShowOnTopLevelRightClickMenu() const;
265 
267  virtual std::string doctrineForForce(int) const;
268 
270  virtual void setResponseTimeout(int);
271  virtual int responseTimeout() const;
272 
273  protected:
275  virtual std::string language() const;
276 
278  virtual void receiveScriptedTaskList(DtSimMessage* msg);
279 
281  virtual void receiveActionCategories(DtSimMessage* msg);
282 
284  virtual void receiveDoctrines(DtSimMessage* msg);
285 
288  virtual void processDoctrinesOperation(DtSimMessage* msg);
289 
291  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
292 
294  virtual void slot_backendRemoved(const DtVrfBackendState&);
295 
296  public:
298  boost::signal<void ()> signal_aboutToClearScriptedTasks;
299  boost::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
300  boost::signal<void (std::string)> signal_scriptedTaskAdded;
301  boost::signal<void ()> signal_receivedScriptedTasks;
302  boost::signal<void (int)> signal_scriptedTaskTypeAdded;
303  boost::signal<void (int)> signal_scriptedTaskTypeRemoved;
304  boost::signal<void ()> signal_doctrinesReceived;
305 
308  boost::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
309 
311  boost::signal<void (std::string, bool)> signal_scriptModified;
312 
314  boost::signal<void ()> signal_scriptModifiedCleared;
315 
317  boost::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
318 
320  boost::signal<void (int, std::string)> signal_scriptRemovedFromSetMenu;
321 
323  boost::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
324 
326  boost::signal<void (int, std::string)> signal_scriptAddedToSetMenu;
327 
329  boost::signal<void (int, std::string)> signal_assignedDoctrineChanged;
330 
331  protected:
333  virtual void responseTick();
334 
335  virtual void addToCreatorFactory(const DtScriptedTaskMetaData& md);
336  virtual void removeFromFactory(const DtScriptedTaskMetaData& script);
337 
338  protected:
343 
344  unsigned int myRequestId;
345 
346  typedef std::map<std::string, int> ScriptIdToActionIdMap;
348 
349  DtSimulationAddress myScriptMonitorAddress;
350  std::map<std::string, int> myMonitoring;
351 
355 
357 
359 
360  time_t mySendTime;
362 
364 
365  std::map<std::string, bool> myWaitingToBeModified;
366  };
367 }

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)