VR-Forces Developer's Guide
 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 
17 #include <vrvCore/DtUniqueID.h>
19 #include <vlpi/simulationAddress.h>
22 #include <vrvUtil/DtUnicode.h>
23 
24 #include <boost/function.hpp>
25 
26 class DtSimMessage;
27 class DtScenarioExplorer;
28 
31 class QWidget;
32 
33 namespace makVrv
34 {
35  class DtDe;
36 }
37 
38 namespace makVrf
39 {
40  class DtVrfBackendState;
41 
45  {
46  public:
47  typedef std::map<int, makVrv::DtUnicode> ScriptedTaskTypeNames;
48  typedef std::map<bool, std::string> IconType;
49  typedef std::map<int, std::string> DoctrinesByForce;
50 
52  {
55  };
56 
57  typedef std::map<int, ScriptedTaskDialogInformation> ScriptedTaskTypeInformation;
58 
60  {
61  ScenarioSystemPair() : scenarioScript(0), systemScript(0) {};
62  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy) {};
63 
64  DtScriptedTaskMetaData* scenarioScript;
66  std::string scriptError;
67  bool modified;
68  };
69 
70  typedef std::map<std::string, ScenarioSystemPair> ScriptedTasks;
71  typedef std::pair<std::string, bool> ActionCategory;
72  typedef std::set<std::string> Doctrines;
73  typedef std::map<std::string, ActionCategory> ActionCategories;
74 
76  {
78  std::string scriptError;
79  };
80 
81  typedef std::map<std::string, PreservedScript> PreservedScripts;
82 
83  public:
85  virtual ~DtVrfScriptedTaskManager();
86 
88  static DtVrfScriptedTaskManager& instance(makVrv::DtDe& de);
89  static void registerInstance(makVrv::DtDe&, DtVrfScriptedTaskManager*);
90 
94  virtual void clear(bool andSetting = true, bool reset = true, bool signal = true);
95 
98  virtual void removeScriptedTaskMetaData(const std::string& scriptedTaskId, bool signal = true);
99 
101  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSimTaskMessageType& scriptId, bool system) const;
102  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSetMessageType& scriptId, bool system) const;
103  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId, bool system) const;
104  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtGenericMessageType& scriptId, bool system) const;
105 
107  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSimTaskMessageType& scriptId) const;
108  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSetMessageType& scriptId) const;
109  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtGenericMessageType& scriptId) const;
110  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId) const;
111 
113  virtual bool doesNotHaveSMSLoaded(const DtScenarioExplorer&) const;
114 
117  virtual void addScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, bool addScript = false, bool addLayout = false);
118 
121  virtual void duplicateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& sourceId);
122 
126  virtual void updateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& originalId = "");
127 
129  virtual void deleteScriptedTaskMetaData(const std::string&);
130 
132  virtual void addScriptedTaskMetaData(const DtScriptedTaskMetaData&, bool signal = true);
133 
136  virtual void requestScriptedTasks(const std::vector<std::string>& scripts = std::vector<std::string>());
137 
139  virtual void loadScripts(const DtScenarioExplorer& explorer);
140 
142  virtual bool isSystemScript(const DtSimTaskMessageType&) const;
143  virtual bool isSystemScript(const DtSetMessageType&) const;
144  virtual bool isSystemScript(const std::string&) const;
145 
147  virtual bool hasSystemScript(const DtSimTaskMessageType&) const;
148  virtual bool hasSystemScript(const DtSetMessageType&) const;
149  virtual bool hasSystemScript(const std::string&) const;
150 
152  virtual bool appearsOnMenu(const std::string&) const;
153 
155  virtual bool appearsOnToolbar(const std::string&) const;
156 
158  virtual bool systemScriptAvailable(const std::string&) const;
159 
161  virtual void setSystemScriptAvailable(const std::string& id, bool);
162 
164  virtual void removeSystemScript(const std::string& id, bool signal = true);
165 
167  virtual const ScriptedTasks& scriptedTaskMetaData() const;
168 
170  virtual std::string remapMenuPath(std::string originalPath) const;
171 
173  virtual bool hasScriptedTaskMetaData(const DtSimTaskMessageType&) const;
174  virtual bool hasScriptedTaskMetaData(const DtSetMessageType&) const;
175  virtual bool hasScriptedTaskMetaData(const std::string&) const;
176 
177  virtual bool hasScenarioScriptedTaskMetaData(const DtSimTaskMessageType&) const;
178  virtual bool hasScenarioScriptedTaskMetaData(const DtSetMessageType&) const;
179  virtual bool hasScenarioScriptedTaskMetaData(const std::string&) const;
180 
181  virtual bool hasSystemScriptedTaskMetaData(const DtSimTaskMessageType&) const;
182  virtual bool hasSystemScriptedTaskMetaData(const DtSetMessageType&) const;
183  virtual bool hasSystemScriptedTaskMetaData(const std::string&) const;
184 
186  virtual bool hasDoctrine(const std::string&) const;
187 
192  virtual std::string uniqueScriptIdFrom(const std::string&, int scriptType,
193  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
194 
198  virtual void makeSystemScript(const std::string&);
199 
201  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
202 
204  virtual void clearScriptError(const std::string& scriptId);
205 
208  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
209 
211  virtual bool scriptIsModified(const std::string& scriptId) const;
212 
214  virtual void setScriptModified(const std::string& scriptId, bool);
215 
217  virtual void clearModifiedScripts();
218 
222  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
223 
227  virtual void setUiLayout(const std::string& scriptId, const std::string& uiLayout, bool setAsModified = true, bool sendUpdate = true);
228 
230  virtual bool hasModifiedScripts() const;
231 
233  virtual void preserveModifiedScripts();
234 
236  virtual void restorePreservedScripts();
237 
239  virtual int mapScriptToAction(const DtScriptedTaskMetaData& script, bool addIfMissing = true);
240  virtual int mapScriptToAction(const std::string& scriptId) const;
241 
243  virtual void unmapScript(const DtScriptedTaskMetaData&);
244 
246  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
247 
249  virtual const ActionCategories& actionCategories() const;
250 
252  virtual const Doctrines& doctrines() const;
253 
255  virtual void requestScriptsIfNeeded();
256 
260  virtual void addScriptedTaskType(int, const makVrv::DtUnicode& name);
261  virtual void addScriptedTaskTypeIcon(int, bool isSystemIcon, const std::string&);
262  virtual makVrv::DtUnicode getScriptedTaskTypeName(int) const;
263  virtual std::string getScriptedTaskTypeIcon(int, bool isSystemScrript) const;
264  virtual ScriptedTaskTypeNames getScriptedTaskTypes() const;
265  virtual void removeScriptedTaskType(int);
267 
270  virtual DtSimTaskMessageType remapScriptId(const DtSimTaskMessageType& scriptId) const;
271  virtual DtSetMessageType remapScriptId(const DtSetMessageType& scriptId) const;
272  virtual std::string remapScriptId(const std::string& scriptId) const;
273 
275  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(const DtEntityType&, int force = -1) const;
276 
278  virtual std::vector<DtSetMessageType> scriptedSetsValidFor(const DtEntityType&, int force = -1) const;
279 
281  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(const DtEntityType&, int force = -1) const;
282 
284  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(const DtEntityType&, int force = -1) const;
285 
287  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(makVrv::DtUniqueID) const;
288 
290  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(makVrv::DtUniqueID) const;
291 
293  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(makVrv::DtUniqueID) const;
294 
296  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force = -1) const;
297 
299  virtual std::vector<std::string> scriptsValidFor(int scriptType) const;
300 
302  virtual std::vector<std::string> scriptsThatSupportDoctrine(const std::string&) const;
303 
305  virtual int scriptedTaskTypeFor(const makVrv::DtUnicode&) const;
306 
308  virtual std::string formatScript(const std::string& script, int scriptType, const std::string& commentBlock) const;
309 
312  {
313  return myDoctrinesByForce;
314  }
315 
317  virtual const std::set<DtString>& scriptedTasksToShowOnTopLevelRightClickMenu() const;
318 
320  virtual std::string doctrineForForce(int) const;
321 
323  virtual void removeUiLayout(const std::string& scriptId, bool removeFromBackEnd = true);
324 
326  virtual bool scriptsLoaded() const;
327 
329  virtual bool activeRequest() const;
330 
331  protected:
333  virtual std::string language() const;
334 
336  virtual void receiveScriptedTaskChecksums(DtSimMessage* msg);
337 
339  virtual void receiveScriptedTaskList(DtSimMessage* msg);
340 
342  virtual void receiveActionCategories(DtSimMessage* msg);
343 
345  virtual void receiveDoctrines(DtSimMessage* msg);
346 
349  virtual void processDoctrinesOperation(DtSimMessage* msg);
350 
352  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
353 
355  virtual void slot_backendRemoved(const DtVrfBackendState&);
356 
358  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
359 
361  virtual std::string addPrefixOrSuffix(int type, const DtString& scriptdId) const;
362 
363  public:
364  boost::signals2::signal<void (std::string)> signal_scriptSaveError;
365  boost::signals2::signal<void ()> signal_scriptedTaskManagerAboutToChange;
366  boost::signals2::signal<void ()> signal_aboutToClearScriptedTasks;
367  boost::signals2::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
368  boost::signals2::signal<void (std::string)> signal_scriptedTaskAdded;
369  boost::signals2::signal<void ()> signal_receivedScriptedTasks;
370  boost::signals2::signal<void (int)> signal_scriptedTaskTypeAdded;
371  boost::signals2::signal<void (int)> signal_scriptedTaskTypeRemoved;
372  boost::signals2::signal<void ()> signal_doctrinesReceived;
373 
376  boost::signals2::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
377 
379  boost::signals2::signal<void (std::string, bool)> signal_scriptModified;
380 
382  boost::signals2::signal<void ()> signal_scriptModifiedCleared;
383 
385  boost::signals2::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
386 
388  boost::signals2::signal<void (int, std::string)> signal_scriptRemovedFromSetMenu;
389 
391  boost::signals2::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
392 
394  boost::signals2::signal<void (int, std::string)> signal_scriptAddedToSetMenu;
395 
397  boost::signals2::signal<void (int, std::string)> signal_assignedDoctrineChanged;
398 
400  boost::signals2::signal<void (std::string, std::string, int)> signal_scriptIdChanged;
401 
402  protected:
403  virtual void addToCreatorFactory(const DtScriptedTaskMetaData& md);
404  virtual void removeFromFactory(const DtScriptedTaskMetaData& script);
405 
406  protected:
411 
412  unsigned int myRequestId;
413 
414  typedef std::map<std::string, int> ScriptIdToActionIdMap;
416 
417  DtSimulationAddress myScriptMonitorAddress;
418  std::map<std::string, int> myMonitoring;
419 
423 
425 
427 
429 
431 
432  std::map<std::string, bool> myWaitingToBeModified;
433  std::map<std::string, std::string> myScriptIdToScriptIdMap;
436 
437  std::set<DtFilename> mySMSLoaded;
438  };
439 }
std::map< bool, std::string > IconType
Definition: vrfScriptedTaskManager.h:48
Definition: vrfBackendState.h:69
bool myRequestScriptsIfNeeded
Definition: vrfScriptedTaskManager.h:422
Doctrines myDoctrines
Definition: vrfScriptedTaskManager.h:421
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
std::map< std::string, PreservedScript > PreservedScripts
Definition: vrfScriptedTaskManager.h:81
makVrv::DtUnicode name
Definition: vrfScriptedTaskManager.h:53
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
boost::signals2::signal< void(std::string, std::string, int)> signal_scriptIdChanged
Signal sent when the script id has changed (old to new). The int is the new action id...
Definition: vrfScriptedTaskManager.h:400
boost::signals2::signal< void(int)> signal_scriptedTaskTypeAdded
Definition: vrfScriptedTaskManager.h:370
std::map< int, std::string > DoctrinesByForce
Definition: vrfScriptedTaskManager.h:49
IconType icon
Definition: vrfScriptedTaskManager.h:54
std::map< std::string, ActionCategory > ActionCategories
Definition: vrfScriptedTaskManager.h:73
boost::signals2::signal< void(int, std::string)> signal_scriptAddedToTaskMenu
Signal sent when a scripted task menu item is added. Sends menu id and script id. ...
Definition: vrfScriptedTaskManager.h:391
std::string scriptError
Definition: vrfScriptedTaskManager.h:66
std::set< DtString > myScriptsToShowOnTopLevelRightClickMenu
Definition: vrfScriptedTaskManager.h:430
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::map< int, makVrv::DtUnicode > ScriptedTaskTypeNames
Definition: vrfScriptedTaskManager.h:47
Definition: vrfScriptedTaskManager.h:59
DtScriptedTaskMetaData * systemScript
Definition: vrfScriptedTaskManager.h:65
ScenarioSystemPair(DtScriptedTaskMetaData *sc, DtScriptedTaskMetaData *sy)
Definition: vrfScriptedTaskManager.h:62
std::set< std::string > Doctrines
Definition: vrfScriptedTaskManager.h:72
std::map< std::string, int > myMonitoring
Definition: vrfScriptedTaskManager.h:418
boost::signals2::signal< void()> signal_scriptModifiedCleared
Signals that modified statuses have been cleared.
Definition: vrfScriptedTaskManager.h:382
DtScriptedTaskMetaData scriptedTask
Definition: vrfScriptedTaskManager.h:77
boost::signals2::signal< void()> signal_receivedScriptedTasks
Definition: vrfScriptedTaskManager.h:369
std::map< std::string, int > ScriptIdToActionIdMap
Definition: vrfScriptedTaskManager.h:414
boost::signals2::signal< void(std::string)> signal_scriptedTaskAboutToBeRemoved
Definition: vrfScriptedTaskManager.h:367
Contains makVrv::DtVirtualBaseClass class.
bool myScriptsLoaded
Definition: vrfScriptedTaskManager.h:434
ScriptIdToActionIdMap myScriptIdToActionIdMap
Definition: vrfScriptedTaskManager.h:415
PreservedScripts myPreservedScripts
Definition: vrfScriptedTaskManager.h:410
boost::signals2::signal< void()> signal_aboutToClearScriptedTasks
Definition: vrfScriptedTaskManager.h:366
Definition: vrfScriptedTaskManager.h:75
std::string scriptError
Definition: vrfScriptedTaskManager.h:78
std::map< int, ScriptedTaskDialogInformation > ScriptedTaskTypeInformation
Definition: vrfScriptedTaskManager.h:57
File: simMsg.h.
Definition: simMessage.h:35
bool myNewContentAdded
Definition: vrfScriptedTaskManager.h:435
boost::signals2::signal< void()> signal_scriptedTaskManagerAboutToChange
Definition: vrfScriptedTaskManager.h:365
boost::signals2::signal< void(std::string, bool)> signal_scriptModified
Signals that a script has been modified.
Definition: vrfScriptedTaskManager.h:379
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
unsigned int myRequestId
Definition: vrfScriptedTaskManager.h:412
boost::signals2::signal< void(int, std::string)> signal_scriptRemovedFromTaskMenu
Signal sent when a scripted task menu item is removed. Sends menu id and script id.
Definition: vrfScriptedTaskManager.h:385
ScenarioSystemPair()
Definition: vrfScriptedTaskManager.h:61
boost::signals2::signal< void(int, std::string)> signal_assignedDoctrineChanged
Signal sent when assigned doctrines change.
Definition: vrfScriptedTaskManager.h:397
ActionCategories myActionCategories
Definition: vrfScriptedTaskManager.h:420
boost::signals2::signal< void(int, std::string)> signal_scriptAddedToSetMenu
Signal sent when a scripted set menu item is added. Sends menu id and script id.
Definition: vrfScriptedTaskManager.h:394
std::pair< std::string, bool > ActionCategory
Definition: vrfScriptedTaskManager.h:71
bool modified
Non-empty script error string signifies script error.
Definition: vrfScriptedTaskManager.h:67
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Definition: asyncJobServer.h:39
bool myRequestScriptChecksums
Definition: vrfScriptedTaskManager.h:424
boost::signals2::signal< void(int, std::string)> signal_scriptRemovedFromSetMenu
Signal sent when a scripted set menu item is removed. Sends menu id and script id.
Definition: vrfScriptedTaskManager.h:388
ScriptedTasks myScriptedTasks
Definition: vrfScriptedTaskManager.h:409
std::set< DtFilename > mySMSLoaded
Definition: vrfScriptedTaskManager.h:437
boost::signals2::signal< void(std::string, bool, std::string)> signal_scriptErrorChange
Signals a script error. First parameter is the id, second is true/false that there is an error third ...
Definition: vrfScriptedTaskManager.h:376
Base class to provide boost signal/slot management.
boost::signals2::signal< void(int)> signal_scriptedTaskTypeRemoved
Definition: vrfScriptedTaskManager.h:371
Contains makVrv::DtUniqueID type.
DtSimulationAddress myScriptMonitorAddress
Definition: vrfScriptedTaskManager.h:417
makVrv::DtDe & myDe
Definition: vrfScriptedTaskManager.h:407
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
boost::signals2::signal< void()> signal_doctrinesReceived
Definition: vrfScriptedTaskManager.h:372
ScriptedTaskTypeInformation myScriptedTaskTypeInformation
Definition: vrfScriptedTaskManager.h:426
std::map< std::string, std::string > myScriptIdToScriptIdMap
Definition: vrfScriptedTaskManager.h:433
boost::signals2::signal< void(std::string)> signal_scriptedTaskAdded
Definition: vrfScriptedTaskManager.h:368
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:57
const DoctrinesByForce & doctrinesByForce() const
Returns the list of doctrines by force.
Definition: vrfScriptedTaskManager.h:311
DoctrinesByForce myDoctrinesByForce
Definition: vrfScriptedTaskManager.h:428
boost::signals2::signal< void(std::string)> signal_scriptSaveError
Definition: vrfScriptedTaskManager.h:364
std::map< std::string, ScenarioSystemPair > ScriptedTasks
Definition: vrfScriptedTaskManager.h:70
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfScriptedTaskManager.h:408
std::map< std::string, bool > myWaitingToBeModified
Definition: vrfScriptedTaskManager.h:432
The Master DtVrfScriptedTaskManager. The scripted task manager will be responsible for maintaining th...
Definition: vrfScriptedTaskManager.h:44

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)