VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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>
23 
24 #include <boost/function.hpp>
25 
26 class DtSimMessage;
27 
30 class QWidget;
31 
32 namespace makVrf
33 {
34  class DtVrfBackendState;
35 
39  {
40  public:
41  typedef std::map<int, makVrv::DtUnicode> ScriptedTaskTypeNames;
42  typedef std::map<bool, std::string> IconType;
43  typedef std::map<int, std::string> DoctrinesByForce;
44 
46  {
49  };
50 
51  typedef std::map<int, ScriptedTaskDialogInformation> ScriptedTaskTypeInformation;
52 
54  {
55  ScenarioSystemPair() : scenarioScript(0), systemScript(0) {};
56  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy) {};
57 
58  DtScriptedTaskMetaData* scenarioScript;
60  std::string scriptError;
61  bool modified;
62  };
63 
64  typedef std::map<std::string, ScenarioSystemPair> ScriptedTasks;
65  typedef std::pair<std::string, bool> ActionCategory;
66  typedef std::set<std::string> Doctrines;
67  typedef std::map<std::string, ActionCategory> ActionCategories;
68 
70  {
72  std::string scriptError;
73  };
74 
75  typedef std::map<std::string, PreservedScript> PreservedScripts;
76 
77  public:
79  virtual ~DtVrfScriptedTaskManager();
80 
82  static DtVrfScriptedTaskManager& instance(makVrv::DtDe& de);
83  static void registerInstance(makVrv::DtDe&, DtVrfScriptedTaskManager*);
84 
88  virtual void clear(bool andSetting = true, bool reset = true, bool signal = true);
89 
92  virtual void removeScriptedTaskMetaData(const std::string& scriptedTaskId, bool signal = true);
93 
95  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSimTaskMessageType& scriptId, bool system) const;
96  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSetMessageType& scriptId, bool system) const;
97  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId, bool system) const;
98  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtGenericMessageType& scriptId, bool system) const;
99 
101  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSimTaskMessageType& scriptId) const;
102  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSetMessageType& scriptId) const;
103  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtGenericMessageType& scriptId) const;
104  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId) const;
105 
108  virtual void addScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, bool addScript = false, bool addLayout = false);
109 
112  virtual void duplicateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& sourceId);
113 
117  virtual void updateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& originalId = "");
118 
120  virtual void deleteScriptedTaskMetaData(const std::string&);
121 
123  virtual void addScriptedTaskMetaData(const DtScriptedTaskMetaData&, bool signal = true);
124 
127  virtual void requestScriptedTasks();
128 
130  virtual bool isSystemScript(const DtSimTaskMessageType&) const;
131  virtual bool isSystemScript(const DtSetMessageType&) const;
132  virtual bool isSystemScript(const std::string&) const;
133 
135  virtual bool hasSystemScript(const DtSimTaskMessageType&) const;
136  virtual bool hasSystemScript(const DtSetMessageType&) const;
137  virtual bool hasSystemScript(const std::string&) const;
138 
140  virtual bool appearsOnMenu(const std::string&) const;
141 
143  virtual bool appearsOnToolbar(const std::string&) const;
144 
146  virtual bool systemScriptAvailable(const std::string&) const;
147 
149  virtual void setSystemScriptAvailable(const std::string& id, bool);
150 
152  virtual void removeSystemScript(const std::string& id, bool signal = true);
153 
155  virtual const ScriptedTasks& scriptedTaskMetaData() const;
156 
158  virtual std::string remapMenuPath(std::string originalPath) const;
159 
161  virtual bool hasScriptedTaskMetaData(const DtSimTaskMessageType&) const;
162  virtual bool hasScriptedTaskMetaData(const DtSetMessageType&) const;
163  virtual bool hasScriptedTaskMetaData(const std::string&) const;
164 
165  virtual bool hasScenarioScriptedTaskMetaData(const DtSimTaskMessageType&) const;
166  virtual bool hasScenarioScriptedTaskMetaData(const DtSetMessageType&) const;
167  virtual bool hasScenarioScriptedTaskMetaData(const std::string&) const;
168 
169  virtual bool hasSystemScriptedTaskMetaData(const DtSimTaskMessageType&) const;
170  virtual bool hasSystemScriptedTaskMetaData(const DtSetMessageType&) const;
171  virtual bool hasSystemScriptedTaskMetaData(const std::string&) const;
172 
174  virtual bool hasDoctrine(const std::string&) const;
175 
179  virtual std::string uniqueScriptIdFrom(const std::string&,
180  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
181 
185  virtual void makeSystemScript(const std::string&);
186 
188  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
189 
191  virtual void clearScriptError(const std::string& scriptId);
192 
195  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
196 
198  virtual bool scriptIsModified(const std::string& scriptId) const;
199 
201  virtual void setScriptModified(const std::string& scriptId, bool);
202 
204  virtual void clearModifiedScripts();
205 
209  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
210 
214  virtual void setUiLayout(const std::string& scriptId, const std::string& uiLayout, bool setAsModified = true, bool sendUpdate = true);
215 
217  virtual bool hasModifiedScripts() const;
218 
220  virtual void preserveModifiedScripts();
221 
223  virtual void restorePreservedScripts();
224 
226  virtual int mapScriptToAction(const DtScriptedTaskMetaData& script, bool addIfMissing = true);
227 
229  virtual void unmapScript(const DtScriptedTaskMetaData&);
230 
232  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
233 
235  virtual const ActionCategories& actionCategories() const;
236 
238  virtual const Doctrines& doctrines() const;
239 
241  virtual void requestScriptsIfNeeded();
242 
246  virtual void addScriptedTaskType(int, const makVrv::DtUnicode& name);
247  virtual void addScriptedTaskTypeIcon(int, bool isSystemIcon, const std::string&);
248  virtual makVrv::DtUnicode getScriptedTaskTypeName(int) const;
249  virtual std::string getScriptedTaskTypeIcon(int, bool isSystemScrript) const;
250  virtual ScriptedTaskTypeNames getScriptedTaskTypes() const;
251  virtual void removeScriptedTaskType(int);
253 
256  virtual DtSimTaskMessageType remapScriptId(const DtSimTaskMessageType& scriptId) const;
257  virtual DtSetMessageType remapScriptId(const DtSetMessageType& scriptId) const;
258  virtual std::string remapScriptId(const std::string& scriptId) const;
259 
261  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(const DtEntityType&, int force = -1) const;
262 
264  virtual std::vector<DtSetMessageType> scriptedSetsValidFor(const DtEntityType&, int force = -1) const;
265 
267  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(const DtEntityType&, int force = -1) const;
268 
270  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(const DtEntityType&, int force = -1) const;
271 
273  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(makVrv::DtUniqueID) const;
274 
276  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(makVrv::DtUniqueID) const;
277 
279  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(makVrv::DtUniqueID) const;
280 
282  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force = -1) const;
283 
285  virtual std::vector<std::string> scriptsThatSupportDoctrine(const std::string&) const;
286 
288  virtual int scriptedTaskTypeFor(const makVrv::DtUnicode&) const;
289 
291  virtual std::string formatScript(const std::string& script, int scriptType, const std::string& commentBlock) const;
292 
294  const DoctrinesByForce& doctrinesByForce() const
295  {
296  return myDoctrinesByForce;
297  }
298 
300  virtual const std::set<DtString>& scriptedTasksToShowOnTopLevelRightClickMenu() const;
301 
303  virtual std::string doctrineForForce(int) const;
304 
306  virtual void setResponseTimeout(int);
307  virtual int responseTimeout() const;
308 
310  virtual void removeUiLayout(const std::string& scriptId, bool removeFromBackEnd = true);
311 
312  protected:
314  virtual std::string language() const;
315 
317  virtual void receiveScriptedTaskList(DtSimMessage* msg);
318 
320  virtual void receiveActionCategories(DtSimMessage* msg);
321 
323  virtual void receiveDoctrines(DtSimMessage* msg);
324 
327  virtual void processDoctrinesOperation(DtSimMessage* msg);
328 
330  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
331 
333  virtual void slot_backendRemoved(const DtVrfBackendState&);
334 
336  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
337 
338  public:
339  boost::signal<void (std::string)> signal_scriptSaveError;
341  boost::signal<void ()> signal_aboutToClearScriptedTasks;
342  boost::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
343  boost::signal<void (std::string)> signal_scriptedTaskAdded;
344  boost::signal<void ()> signal_receivedScriptedTasks;
345  boost::signal<void (int)> signal_scriptedTaskTypeAdded;
346  boost::signal<void (int)> signal_scriptedTaskTypeRemoved;
347  boost::signal<void ()> signal_doctrinesReceived;
348 
351  boost::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
352 
354  boost::signal<void (std::string, bool)> signal_scriptModified;
355 
357  boost::signal<void ()> signal_scriptModifiedCleared;
358 
360  boost::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
361 
363  boost::signal<void (int, std::string)> signal_scriptRemovedFromSetMenu;
364 
366  boost::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
367 
369  boost::signal<void (int, std::string)> signal_scriptAddedToSetMenu;
370 
372  boost::signal<void (int, std::string)> signal_assignedDoctrineChanged;
373 
375  boost::signal<void (std::string, std::string, int)> signal_scriptIdChanged;
376 
377  protected:
379  virtual void responseTick();
380 
381  virtual void addToCreatorFactory(const DtScriptedTaskMetaData& md);
382  virtual void removeFromFactory(const DtScriptedTaskMetaData& script);
383 
384  protected:
389 
390  unsigned int myRequestId;
391 
392  typedef std::map<std::string, int> ScriptIdToActionIdMap;
394 
395  DtSimulationAddress myScriptMonitorAddress;
396  std::map<std::string, int> myMonitoring;
397 
401 
403 
405 
406  time_t mySendTime;
408 
410 
411  std::map<std::string, bool> myWaitingToBeModified;
412  std::map<std::string, std::string> myScriptIdToScriptIdMap;
413  };
414 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)