VR-Forces 5.0.1 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 
30 class QWidget;
31 
32 namespace makVrv
33 {
34  class DtDe;
35 }
36 
37 namespace makVrf
38 {
39  class DtVrfBackendState;
40 
44  {
45  public:
46  typedef std::map<int, makVrv::DtUnicode> ScriptedTaskTypeNames;
47  typedef std::map<bool, std::string> IconType;
48  typedef std::map<int, std::string> DoctrinesByForce;
49 
51  {
54  };
55 
56  typedef std::map<int, ScriptedTaskDialogInformation> ScriptedTaskTypeInformation;
57 
59  {
60  ScenarioSystemPair() : scenarioScript(0), systemScript(0) {};
61  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy) {};
62 
63  DtScriptedTaskMetaData* scenarioScript;
65  std::string scriptError;
66  bool modified;
67  };
68 
69  typedef std::map<std::string, ScenarioSystemPair> ScriptedTasks;
70  typedef std::pair<std::string, bool> ActionCategory;
71  typedef std::set<std::string> Doctrines;
72  typedef std::map<std::string, ActionCategory> ActionCategories;
73 
75  {
77  std::string scriptError;
78  };
79 
80  typedef std::map<std::string, PreservedScript> PreservedScripts;
81 
82  public:
84  virtual ~DtVrfScriptedTaskManager();
85 
87  static DtVrfScriptedTaskManager& instance(makVrv::DtDe& de);
88  static void registerInstance(makVrv::DtDe&, DtVrfScriptedTaskManager*);
89 
93  virtual void clear(bool andSetting = true, bool reset = true, bool signal = true);
94 
97  virtual void removeScriptedTaskMetaData(const std::string& scriptedTaskId, bool signal = true);
98 
100  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSimTaskMessageType& scriptId, bool system) const;
101  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSetMessageType& scriptId, bool system) const;
102  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId, bool system) const;
103  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtGenericMessageType& scriptId, bool system) const;
104 
106  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSimTaskMessageType& scriptId) const;
107  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtSetMessageType& scriptId) const;
108  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const DtGenericMessageType& scriptId) const;
109  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId) const;
110 
113  virtual void addScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, bool addScript = false, bool addLayout = false);
114 
117  virtual void duplicateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& sourceId);
118 
122  virtual void updateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& originalId = "");
123 
125  virtual void deleteScriptedTaskMetaData(const std::string&);
126 
128  virtual void addScriptedTaskMetaData(const DtScriptedTaskMetaData&, bool signal = true);
129 
132  virtual void requestScriptedTasks();
133 
135  virtual bool isSystemScript(const DtSimTaskMessageType&) const;
136  virtual bool isSystemScript(const DtSetMessageType&) const;
137  virtual bool isSystemScript(const std::string&) const;
138 
140  virtual bool hasSystemScript(const DtSimTaskMessageType&) const;
141  virtual bool hasSystemScript(const DtSetMessageType&) const;
142  virtual bool hasSystemScript(const std::string&) const;
143 
145  virtual bool appearsOnMenu(const std::string&) const;
146 
148  virtual bool appearsOnToolbar(const std::string&) const;
149 
151  virtual bool systemScriptAvailable(const std::string&) const;
152 
154  virtual void setSystemScriptAvailable(const std::string& id, bool);
155 
157  virtual void removeSystemScript(const std::string& id, bool signal = true);
158 
160  virtual const ScriptedTasks& scriptedTaskMetaData() const;
161 
163  virtual std::string remapMenuPath(std::string originalPath) const;
164 
166  virtual bool hasScriptedTaskMetaData(const DtSimTaskMessageType&) const;
167  virtual bool hasScriptedTaskMetaData(const DtSetMessageType&) const;
168  virtual bool hasScriptedTaskMetaData(const std::string&) const;
169 
170  virtual bool hasScenarioScriptedTaskMetaData(const DtSimTaskMessageType&) const;
171  virtual bool hasScenarioScriptedTaskMetaData(const DtSetMessageType&) const;
172  virtual bool hasScenarioScriptedTaskMetaData(const std::string&) const;
173 
174  virtual bool hasSystemScriptedTaskMetaData(const DtSimTaskMessageType&) const;
175  virtual bool hasSystemScriptedTaskMetaData(const DtSetMessageType&) const;
176  virtual bool hasSystemScriptedTaskMetaData(const std::string&) const;
177 
179  virtual bool hasDoctrine(const std::string&) const;
180 
185  virtual std::string uniqueScriptIdFrom(const std::string&, int scriptType,
186  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
187 
191  virtual void makeSystemScript(const std::string&);
192 
194  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
195 
197  virtual void clearScriptError(const std::string& scriptId);
198 
201  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
202 
204  virtual bool scriptIsModified(const std::string& scriptId) const;
205 
207  virtual void setScriptModified(const std::string& scriptId, bool);
208 
210  virtual void clearModifiedScripts();
211 
215  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
216 
220  virtual void setUiLayout(const std::string& scriptId, const std::string& uiLayout, bool setAsModified = true, bool sendUpdate = true);
221 
223  virtual bool hasModifiedScripts() const;
224 
226  virtual void preserveModifiedScripts();
227 
229  virtual void restorePreservedScripts();
230 
232  virtual int mapScriptToAction(const DtScriptedTaskMetaData& script, bool addIfMissing = true);
233 
235  virtual void unmapScript(const DtScriptedTaskMetaData&);
236 
238  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
239 
241  virtual const ActionCategories& actionCategories() const;
242 
244  virtual const Doctrines& doctrines() const;
245 
247  virtual void requestScriptsIfNeeded();
248 
252  virtual void addScriptedTaskType(int, const makVrv::DtUnicode& name);
253  virtual void addScriptedTaskTypeIcon(int, bool isSystemIcon, const std::string&);
254  virtual makVrv::DtUnicode getScriptedTaskTypeName(int) const;
255  virtual std::string getScriptedTaskTypeIcon(int, bool isSystemScrript) const;
256  virtual ScriptedTaskTypeNames getScriptedTaskTypes() const;
257  virtual void removeScriptedTaskType(int);
259 
262  virtual DtSimTaskMessageType remapScriptId(const DtSimTaskMessageType& scriptId) const;
263  virtual DtSetMessageType remapScriptId(const DtSetMessageType& scriptId) const;
264  virtual std::string remapScriptId(const std::string& scriptId) const;
265 
267  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(const DtEntityType&, int force = -1) const;
268 
270  virtual std::vector<DtSetMessageType> scriptedSetsValidFor(const DtEntityType&, int force = -1) const;
271 
273  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(const DtEntityType&, int force = -1) const;
274 
276  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(const DtEntityType&, int force = -1) const;
277 
279  virtual std::vector<DtSimTaskMessageType> scriptedTasksValidFor(makVrv::DtUniqueID) const;
280 
282  virtual std::vector<DtSimTaskMessageType> reactiveTasksValidFor(makVrv::DtUniqueID) const;
283 
285  virtual std::vector<DtSimTaskMessageType> backgroundProcessesValidFor(makVrv::DtUniqueID) const;
286 
288  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force = -1) const;
289 
291  virtual std::vector<std::string> scriptsValidFor(int scriptType) const;
292 
294  virtual std::vector<std::string> scriptsThatSupportDoctrine(const std::string&) const;
295 
297  virtual int scriptedTaskTypeFor(const makVrv::DtUnicode&) const;
298 
300  virtual std::string formatScript(const std::string& script, int scriptType, const std::string& commentBlock) const;
301 
304  {
305  return myDoctrinesByForce;
306  }
307 
309  virtual const std::set<DtString>& scriptedTasksToShowOnTopLevelRightClickMenu() const;
310 
312  virtual std::string doctrineForForce(int) const;
313 
315  virtual void setResponseTimeout(int);
316  virtual int responseTimeout() const;
317 
319  virtual void removeUiLayout(const std::string& scriptId, bool removeFromBackEnd = true);
320 
321  protected:
323  virtual std::string language() const;
324 
326  virtual void receiveScriptedTaskList(DtSimMessage* msg);
327 
329  virtual void receiveActionCategories(DtSimMessage* msg);
330 
332  virtual void receiveDoctrines(DtSimMessage* msg);
333 
336  virtual void processDoctrinesOperation(DtSimMessage* msg);
337 
339  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
340 
342  virtual void slot_backendRemoved(const DtVrfBackendState&);
343 
345  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
346 
348  virtual std::string addPrefixOrSuffix(int type, const DtString& scriptdId) const;
349 
350  public:
351  boost::signals2::signal<void (std::string)> signal_scriptSaveError;
352  boost::signals2::signal<void ()> signal_scriptedTaskManagerAboutToChange;
353  boost::signals2::signal<void ()> signal_aboutToClearScriptedTasks;
354  boost::signals2::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
355  boost::signals2::signal<void (std::string)> signal_scriptedTaskAdded;
356  boost::signals2::signal<void ()> signal_receivedScriptedTasks;
357  boost::signals2::signal<void (int)> signal_scriptedTaskTypeAdded;
358  boost::signals2::signal<void (int)> signal_scriptedTaskTypeRemoved;
359  boost::signals2::signal<void ()> signal_doctrinesReceived;
360 
363  boost::signals2::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
364 
366  boost::signals2::signal<void (std::string, bool)> signal_scriptModified;
367 
369  boost::signals2::signal<void ()> signal_scriptModifiedCleared;
370 
372  boost::signals2::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
373 
375  boost::signals2::signal<void (int, std::string)> signal_scriptRemovedFromSetMenu;
376 
378  boost::signals2::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
379 
381  boost::signals2::signal<void (int, std::string)> signal_scriptAddedToSetMenu;
382 
384  boost::signals2::signal<void (int, std::string)> signal_assignedDoctrineChanged;
385 
387  boost::signals2::signal<void (std::string, std::string, int)> signal_scriptIdChanged;
388 
389  protected:
391  virtual void responseTick();
392 
393  virtual void addToCreatorFactory(const DtScriptedTaskMetaData& md);
394  virtual void removeFromFactory(const DtScriptedTaskMetaData& script);
395 
396  protected:
401 
402  unsigned int myRequestId;
403 
404  typedef std::map<std::string, int> ScriptIdToActionIdMap;
406 
407  DtSimulationAddress myScriptMonitorAddress;
408  std::map<std::string, int> myMonitoring;
409 
413 
415 
417 
418  time_t mySendTime;
420 
422 
423  std::map<std::string, bool> myWaitingToBeModified;
424  std::map<std::string, std::string> myScriptIdToScriptIdMap;
425  };
426 }
std::map< bool, std::string > IconType
Definition: vrfScriptedTaskManager.h:47
Definition: vrfBackendState.h:69
bool myRequestScriptsIfNeeded
Definition: vrfScriptedTaskManager.h:412
Doctrines myDoctrines
Definition: vrfScriptedTaskManager.h:411
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
int myResponseTimeout
Definition: vrfScriptedTaskManager.h:419
std::map< std::string, PreservedScript > PreservedScripts
Definition: vrfScriptedTaskManager.h:80
makVrv::DtUnicode name
Definition: vrfScriptedTaskManager.h:52
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:387
boost::signals2::signal< void(int)> signal_scriptedTaskTypeAdded
Definition: vrfScriptedTaskManager.h:357
std::map< int, std::string > DoctrinesByForce
Definition: vrfScriptedTaskManager.h:48
IconType icon
Definition: vrfScriptedTaskManager.h:53
std::map< std::string, ActionCategory > ActionCategories
Definition: vrfScriptedTaskManager.h:72
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:378
std::string scriptError
Definition: vrfScriptedTaskManager.h:65
std::set< DtString > myScriptsToShowOnTopLevelRightClickMenu
Definition: vrfScriptedTaskManager.h:421
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::map< int, makVrv::DtUnicode > ScriptedTaskTypeNames
Definition: vrfScriptedTaskManager.h:46
Definition: vrfScriptedTaskManager.h:58
DtScriptedTaskMetaData * systemScript
Definition: vrfScriptedTaskManager.h:64
ScenarioSystemPair(DtScriptedTaskMetaData *sc, DtScriptedTaskMetaData *sy)
Definition: vrfScriptedTaskManager.h:61
std::set< std::string > Doctrines
Definition: vrfScriptedTaskManager.h:71
std::map< std::string, int > myMonitoring
Definition: vrfScriptedTaskManager.h:408
boost::signals2::signal< void()> signal_scriptModifiedCleared
Signals that modified statuses have been cleared.
Definition: vrfScriptedTaskManager.h:369
DtScriptedTaskMetaData scriptedTask
Definition: vrfScriptedTaskManager.h:76
boost::signals2::signal< void()> signal_receivedScriptedTasks
Definition: vrfScriptedTaskManager.h:356
std::map< std::string, int > ScriptIdToActionIdMap
Definition: vrfScriptedTaskManager.h:404
boost::signals2::signal< void(std::string)> signal_scriptedTaskAboutToBeRemoved
Definition: vrfScriptedTaskManager.h:354
Contains makVrv::DtVirtualBaseClass class.
ScriptIdToActionIdMap myScriptIdToActionIdMap
Definition: vrfScriptedTaskManager.h:405
PreservedScripts myPreservedScripts
Definition: vrfScriptedTaskManager.h:400
boost::signals2::signal< void()> signal_aboutToClearScriptedTasks
Definition: vrfScriptedTaskManager.h:353
Definition: vrfScriptedTaskManager.h:74
std::string scriptError
Definition: vrfScriptedTaskManager.h:77
std::map< int, ScriptedTaskDialogInformation > ScriptedTaskTypeInformation
Definition: vrfScriptedTaskManager.h:56
File: simMsg.h.
Definition: simMessage.h:35
boost::signals2::signal< void()> signal_scriptedTaskManagerAboutToChange
Definition: vrfScriptedTaskManager.h:352
boost::signals2::signal< void(std::string, bool)> signal_scriptModified
Signals that a script has been modified.
Definition: vrfScriptedTaskManager.h:366
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
unsigned int myRequestId
Definition: vrfScriptedTaskManager.h:402
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:372
ScenarioSystemPair()
Definition: vrfScriptedTaskManager.h:60
boost::signals2::signal< void(int, std::string)> signal_assignedDoctrineChanged
Signal sent when assigned doctrines change.
Definition: vrfScriptedTaskManager.h:384
ActionCategories myActionCategories
Definition: vrfScriptedTaskManager.h:410
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:381
time_t mySendTime
Definition: vrfScriptedTaskManager.h:418
std::pair< std::string, bool > ActionCategory
Definition: vrfScriptedTaskManager.h:70
bool modified
Non-empty script error string signifies script error.
Definition: vrfScriptedTaskManager.h:66
Definition: asyncJobServer.h:39
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:375
ScriptedTasks myScriptedTasks
Definition: vrfScriptedTaskManager.h:399
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:363
Base class to provide boost signal/slot management.
boost::signals2::signal< void(int)> signal_scriptedTaskTypeRemoved
Definition: vrfScriptedTaskManager.h:358
Contains makVrv::DtUniqueID type.
DtSimulationAddress myScriptMonitorAddress
Definition: vrfScriptedTaskManager.h:407
makVrv::DtDe & myDe
Definition: vrfScriptedTaskManager.h:397
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:70
boost::signals2::signal< void()> signal_doctrinesReceived
Definition: vrfScriptedTaskManager.h:359
ScriptedTaskTypeInformation myScriptedTaskTypeInformation
Definition: vrfScriptedTaskManager.h:414
std::map< std::string, std::string > myScriptIdToScriptIdMap
Definition: vrfScriptedTaskManager.h:424
boost::signals2::signal< void(std::string)> signal_scriptedTaskAdded
Definition: vrfScriptedTaskManager.h:355
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:56
const DoctrinesByForce & doctrinesByForce() const
Returns the list of doctrines by force.
Definition: vrfScriptedTaskManager.h:303
DoctrinesByForce myDoctrinesByForce
Definition: vrfScriptedTaskManager.h:416
boost::signals2::signal< void(std::string)> signal_scriptSaveError
Definition: vrfScriptedTaskManager.h:351
std::map< std::string, ScenarioSystemPair > ScriptedTasks
Definition: vrfScriptedTaskManager.h:69
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfScriptedTaskManager.h:398
std::map< std::string, bool > myWaitingToBeModified
Definition: vrfScriptedTaskManager.h:423
The Master DtVrfScriptedTaskManager. The scripted task manager will be responsible for maintaining th...
Definition: vrfScriptedTaskManager.h:43

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)