VR-Forces 4.1 Class Documentation
DtVrfScriptedTaskManager.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 
15 #include <vrvUtil/signalslib.h>
16 #include <vrfGuiCore/vrfGuiCore.h>
18 #include <vrvCore/DtDe.h>
19 #include <vlpi/simulationAddress.h>
20 
21 class DtSimMessage;
22 
23 namespace makVrf
24 {
25  class DtVrfBackendState;
26 
30  {
31  public:
33  {
34  ScenarioSystemPair() : scenarioScript(0), systemScript(0) {};
35  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy) {};
36 
37  DtScriptedTaskMetaData* scenarioScript;
39  std::string scriptError;
40  bool modified;
41  };
42 
43  typedef std::map<std::string, ScenarioSystemPair> ScriptedTasks;
44  typedef std::pair<std::string, bool> ActionCategory;
45  typedef std::map<std::string, ActionCategory> ActionCategories;
46 
48  {
50  std::string scriptError;
51  };
52 
53  typedef std::map<std::string, PreservedScript> PreservedScripts;
54 
55  public:
57  virtual ~DtVrfScriptedTaskManager();
58 
60  static DtVrfScriptedTaskManager& instance(makVrv::DtDe& de);
61  static void registerInstance(makVrv::DtDe&, DtVrfScriptedTaskManager*);
62 
65  virtual void clear();
66 
69  virtual void removeScriptedTaskMetaData(const std::string& scriptedTaskId, bool signal = true);
70 
72  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId, bool system) const;
73 
75  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId) const;
76 
78  virtual void addScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&);
79 
82  virtual void duplicateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& sourceId);
83 
87  virtual void updateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& originalId = "");
88 
90  virtual void deleteScriptedTaskMetaData(const std::string&);
91 
93  virtual void addScriptedTaskMetaData(const DtScriptedTaskMetaData&, bool signal = true);
94 
97  virtual void requestScriptedTasks();
98 
100  virtual bool isSystemScript(const std::string&) const;
101 
103  virtual bool appearsOnMenu(const std::string&) const;
104 
106  virtual bool systemScriptAvailable(const std::string&) const;
107 
109  virtual void setSystemScriptAvailable(const std::string& id, bool);
110 
112  virtual void removeSystemScript(const std::string& id, bool signal = true);
113 
115  virtual const ScriptedTasks& scriptedTaskMetaData() const;
116 
118  virtual bool hasScriptedTaskMetaData(const std::string&) const;
119  virtual bool hasScenarioScriptedTaskMetaData(const std::string&) const;
120  virtual bool hasSystemScriptedTaskMetaData(const std::string&) const;
121 
125  virtual std::string uniqueScriptIdFrom(const std::string&,
126  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
127 
131  virtual void makeSystemScript(const std::string&);
132 
134  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
135 
137  virtual void clearScriptError(const std::string& scriptId);
138 
141  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
142 
144  virtual bool scriptIsModified(const std::string& scriptId) const;
145 
147  virtual void setScriptModified(const std::string& scriptId, bool);
148 
150  virtual void clearModifiedScripts();
151 
155  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
156 
158  virtual bool hasModifiedScripts() const;
159 
161  virtual void preserveModifiedScripts();
162 
164  virtual void restorePreservedScripts();
165 
167  virtual int mapScriptIdToAction(const std::string& scriptId);
168 
170  virtual void unmapScriptId(const std::string&);
171 
173  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
174 
176  virtual const ActionCategories& actionCategories() const;
177 
179  virtual void requestScriptsIfNeeded();
180 
181  protected:
183  virtual void receiveScriptedTaskList(DtSimMessage* msg);
184 
186  virtual void receiveActionCategories(DtSimMessage* msg);
187 
189  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
190 
192  virtual void slot_backendRemoved(const DtVrfBackendState&);
193 
194  public:
195  boost::signal<void ()> signal_aboutToClearScriptedTasks;
196  boost::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
197  boost::signal<void (std::string)> signal_scriptedTaskAdded;
198  boost::signal<void ()> signal_receivedScriptedTasks;
199 
202  boost::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
203 
205  boost::signal<void (std::string, bool)> signal_scriptModified;
206 
208  boost::signal<void ()> signal_scriptModifiedCleared;
209 
211  boost::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
212 
214  boost::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
215 
216  protected:
220 
221  unsigned int myRequestId;
222 
223  typedef std::map<std::string, int> ScriptIdToActionIdMap;
225 
226  DtSimulationAddress myScriptMonitorAddress;
227  std::map<std::string, int> myMonitoring;
228 
231  };
232 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)