VR-Forces 4.7 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 
180  virtual std::string uniqueScriptIdFrom(const std::string&, int scriptType,
181  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
182 
186  virtual void makeSystemScript(const std::string&);
187 
189  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
190 
192  virtual void clearScriptError(const std::string& scriptId);
193 
196  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
197 
199  virtual bool scriptIsModified(const std::string& scriptId) const;
200 
202  virtual void setScriptModified(const std::string& scriptId, bool);
203 
205  virtual void clearModifiedScripts();
206 
210  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
211 
215  virtual void setUiLayout(const std::string& scriptId, const std::string& uiLayout, bool setAsModified = true, bool sendUpdate = true);
216 
218  virtual bool hasModifiedScripts() const;
219 
221  virtual void preserveModifiedScripts();
222 
224  virtual void restorePreservedScripts();
225 
227  virtual int mapScriptToAction(const DtScriptedTaskMetaData& script, bool addIfMissing = true);
228 
230  virtual void unmapScript(const DtScriptedTaskMetaData&);
231 
233  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
234 
236  virtual const ActionCategories& actionCategories() const;
237 
239  virtual const Doctrines& doctrines() const;
240 
242  virtual void requestScriptsIfNeeded();
243 
247  virtual void addScriptedTaskType(int, const makVrv::DtUnicode& name);
248  virtual void addScriptedTaskTypeIcon(int, bool isSystemIcon, const std::string&);
249  virtual makVrv::DtUnicode getScriptedTaskTypeName(int) const;
250  virtual std::string getScriptedTaskTypeIcon(int, bool isSystemScrript) const;
251  virtual ScriptedTaskTypeNames getScriptedTaskTypes() const;
252  virtual void removeScriptedTaskType(int);
254 
257  virtual DtSimTaskMessageType remapScriptId(const DtSimTaskMessageType& scriptId) const;
258  virtual DtSetMessageType remapScriptId(const DtSetMessageType& scriptId) const;
259  virtual std::string remapScriptId(const std::string& scriptId) const;
260 
262  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(const DtEntityType&, int force = -1) const;
263 
265  virtual std::vector<DtSetMessageType> scriptedSetsValidFor(const DtEntityType&, int force = -1) const;
266 
268  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(const DtEntityType&, int force = -1) const;
269 
271  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(const DtEntityType&, int force = -1) const;
272 
274  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(makVrv::DtUniqueID) const;
275 
277  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(makVrv::DtUniqueID) const;
278 
280  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(makVrv::DtUniqueID) const;
281 
283  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force = -1) const;
284 
286  virtual std::vector<std::string> scriptsValidFor(int scriptType) const;
287 
289  virtual std::vector<std::string> scriptsThatSupportDoctrine(const std::string&) const;
290 
292  virtual int scriptedTaskTypeFor(const makVrv::DtUnicode&) const;
293 
295  virtual std::string formatScript(const std::string& script, int scriptType, const std::string& commentBlock) const;
296 
298  const DoctrinesByForce& doctrinesByForce() const
299  {
300  return myDoctrinesByForce;
301  }
302 
304  virtual const std::set<DtString>& scriptedTasksToShowOnTopLevelRightClickMenu() const;
305 
307  virtual std::string doctrineForForce(int) const;
308 
310  virtual void setResponseTimeout(int);
311  virtual int responseTimeout() const;
312 
314  virtual void removeUiLayout(const std::string& scriptId, bool removeFromBackEnd = true);
315 
316  protected:
318  virtual std::string language() const;
319 
321  virtual void receiveScriptedTaskList(DtSimMessage* msg);
322 
324  virtual void receiveActionCategories(DtSimMessage* msg);
325 
327  virtual void receiveDoctrines(DtSimMessage* msg);
328 
331  virtual void processDoctrinesOperation(DtSimMessage* msg);
332 
334  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
335 
337  virtual void slot_backendRemoved(const DtVrfBackendState&);
338 
340  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
341 
343  virtual std::string addPrefixOrSuffix(int type, const DtString& scriptdId) const;
344 
345  public:
346  boost::signal<void (std::string)> signal_scriptSaveError;
348  boost::signal<void ()> signal_aboutToClearScriptedTasks;
349  boost::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
350  boost::signal<void (std::string)> signal_scriptedTaskAdded;
351  boost::signal<void ()> signal_receivedScriptedTasks;
352  boost::signal<void (int)> signal_scriptedTaskTypeAdded;
353  boost::signal<void (int)> signal_scriptedTaskTypeRemoved;
354  boost::signal<void ()> signal_doctrinesReceived;
355 
358  boost::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
359 
361  boost::signal<void (std::string, bool)> signal_scriptModified;
362 
364  boost::signal<void ()> signal_scriptModifiedCleared;
365 
367  boost::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
368 
370  boost::signal<void (int, std::string)> signal_scriptRemovedFromSetMenu;
371 
373  boost::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
374 
376  boost::signal<void (int, std::string)> signal_scriptAddedToSetMenu;
377 
379  boost::signal<void (int, std::string)> signal_assignedDoctrineChanged;
380 
382  boost::signal<void (std::string, std::string, int)> signal_scriptIdChanged;
383 
384  protected:
386  virtual void responseTick();
387 
388  virtual void addToCreatorFactory(const DtScriptedTaskMetaData& md);
389  virtual void removeFromFactory(const DtScriptedTaskMetaData& script);
390 
391  protected:
396 
397  unsigned int myRequestId;
398 
399  typedef std::map<std::string, int> ScriptIdToActionIdMap;
401 
402  DtSimulationAddress myScriptMonitorAddress;
403  std::map<std::string, int> myMonitoring;
404 
408 
410 
412 
413  time_t mySendTime;
415 
417 
418  std::map<std::string, bool> myWaitingToBeModified;
419  std::map<std::string, std::string> myScriptIdToScriptIdMap;
420  };
421 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)