VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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>
22 
23 #include <boost/function.hpp>
24 
25 class DtSimMessage;
26 
29 class QWidget;
30 
31 namespace makVrf
32 {
33  class DtVrfBackendState;
34 
38  {
39  public:
40  typedef std::map<int, makVrv::DtUnicode> ScriptedTaskTypeNames;
41  typedef std::map<bool, std::string> IconType;
42  typedef std::map<int, std::string> DoctrinesByForce;
43 
45  {
48  };
49 
50  typedef std::map<int, ScriptedTaskDialogInformation> ScriptedTaskTypeInformation;
51 
53  {
54  ScenarioSystemPair() : scenarioScript(0), systemScript(0) {};
55  ScenarioSystemPair(DtScriptedTaskMetaData* sc, DtScriptedTaskMetaData* sy) : scenarioScript(sc), systemScript(sy) {};
56 
57  DtScriptedTaskMetaData* scenarioScript;
59  std::string scriptError;
60  bool modified;
61  };
62 
63  typedef std::map<std::string, ScenarioSystemPair> ScriptedTasks;
64  typedef std::pair<std::string, bool> ActionCategory;
65  typedef std::set<std::string> Doctrines;
66  typedef std::map<std::string, ActionCategory> ActionCategories;
67 
69  {
71  std::string scriptError;
72  };
73 
74  typedef std::map<std::string, PreservedScript> PreservedScripts;
75 
76  public:
78  virtual ~DtVrfScriptedTaskManager();
79 
81  static DtVrfScriptedTaskManager& instance(makVrv::DtDe& de);
82  static void registerInstance(makVrv::DtDe&, DtVrfScriptedTaskManager*);
83 
87  virtual void clear(bool andSetting = true, bool reset = true, bool signal = true);
88 
91  virtual void removeScriptedTaskMetaData(const std::string& scriptedTaskId, bool signal = true);
92 
94  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId, bool system) const;
95 
97  virtual DtScriptedTaskMetaData scriptedTaskMetaData(const std::string& scriptId) const;
98 
101  virtual void addScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, bool addScript = false);
102 
105  virtual void duplicateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& sourceId);
106 
110  virtual void updateScriptedTaskMetaDataToScenario(const DtScriptedTaskMetaData&, const std::string& originalId = "");
111 
113  virtual void deleteScriptedTaskMetaData(const std::string&);
114 
116  virtual void addScriptedTaskMetaData(const DtScriptedTaskMetaData&, bool signal = true);
117 
120  virtual void requestScriptedTasks();
121 
123  virtual bool isSystemScript(const std::string&) const;
124 
126  virtual bool appearsOnMenu(const std::string&) const;
127 
129  virtual bool appearsOnToolbar(const std::string&) const;
130 
132  virtual bool systemScriptAvailable(const std::string&) const;
133 
135  virtual void setSystemScriptAvailable(const std::string& id, bool);
136 
138  virtual void removeSystemScript(const std::string& id, bool signal = true);
139 
141  virtual const ScriptedTasks& scriptedTaskMetaData() const;
142 
144  virtual bool hasScriptedTaskMetaData(const std::string&) const;
145  virtual bool hasScenarioScriptedTaskMetaData(const std::string&) const;
146  virtual bool hasSystemScriptedTaskMetaData(const std::string&) const;
147 
149  virtual bool hasDoctrine(const std::string&) const;
150 
154  virtual std::string uniqueScriptIdFrom(const std::string&,
155  std::set<std::string> additionalToCheck = std::set<std::string>()) const;
156 
160  virtual void makeSystemScript(const std::string&);
161 
163  virtual void assignScriptError(const std::string& scriptId, const std::string& error);
164 
166  virtual void clearScriptError(const std::string& scriptId);
167 
170  virtual bool scriptHasError(const std::string& scriptId, std::string* error = 0) const;
171 
173  virtual bool scriptIsModified(const std::string& scriptId) const;
174 
176  virtual void setScriptModified(const std::string& scriptId, bool);
177 
179  virtual void clearModifiedScripts();
180 
184  virtual void setScript(const std::string& scriptId, const std::string& script, bool setAsModified = true);
185 
187  virtual bool hasModifiedScripts() const;
188 
190  virtual void preserveModifiedScripts();
191 
193  virtual void restorePreservedScripts();
194 
196  virtual int mapScriptIdToAction(const std::string& scriptId);
197 
199  virtual void unmapScriptId(const std::string&);
200 
202  virtual void setMonitorFrameRates(const std::string& scriptId, bool monitor);
203 
205  virtual const ActionCategories& actionCategories() const;
206 
208  virtual const Doctrines& doctrines() const;
209 
211  virtual void requestScriptsIfNeeded();
212 
216  virtual void addScriptedTaskType(int, const makVrv::DtUnicode& name);
217  virtual void addScriptedTaskTypeIcon(int, bool isSystemIcon, const std::string&);
218  virtual makVrv::DtUnicode getScriptedTaskTypeName(int) const;
219  virtual std::string getScriptedTaskTypeIcon(int, bool isSystemScrript) const;
220  virtual ScriptedTaskTypeNames getScriptedTaskTypes() const;
221  virtual void removeScriptedTaskType(int);
223 
225  virtual std::vector<std::string> scriptedTasksValidFor(const DtEntityType&, int force = -1) const;
226 
228  virtual std::vector<std::string> reactiveTasksValidFor(const DtEntityType&, int force = -1) const;
229 
231  virtual std::vector<std::string> backgroundProcessesValidFor(const DtEntityType&, int force = -1) const;
232 
234  virtual std::vector<std::string> scriptedTasksValidFor(makVrv::DtUniqueID) const;
235 
237  virtual std::vector<std::string> reactiveTasksValidFor(makVrv::DtUniqueID) const;
238 
240  virtual std::vector<std::string> backgroundProcessesValidFor(makVrv::DtUniqueID) const;
241 
243  virtual std::vector<std::string> scriptsValidFor(const DtEntityType&, int scriptType, int force = -1) const;
244 
246  virtual std::vector<std::string> scriptsThatSupportDoctrine(const std::string&) const;
247 
249  virtual int scriptedTaskTypeFor(const makVrv::DtUnicode&) const;
250 
252  const DoctrinesByForce& doctrinesByForce() const
253  {
254  return myDoctrinesByForce;
255  }
256 
258  virtual std::string doctrineForForce(int) const;
259 
261  virtual void setResponseTimeout(int);
262  virtual int responseTimeout() const;
263 
264  protected:
266  virtual std::string language() const;
267 
269  virtual void receiveScriptedTaskList(DtSimMessage* msg);
270 
272  virtual void receiveActionCategories(DtSimMessage* msg);
273 
275  virtual void receiveDoctrines(DtSimMessage* msg);
276 
279  virtual void processDoctrinesOperation(DtSimMessage* msg);
280 
282  virtual void receivedScriptedTaskUpdateMessage(DtSimMessage* msg);
283 
285  virtual void slot_backendRemoved(const DtVrfBackendState&);
286 
287  public:
288  boost::signal<void ()> signal_aboutToClearScriptedTasks;
289  boost::signal<void (std::string)> signal_scriptedTaskAboutToBeRemoved;
290  boost::signal<void (std::string)> signal_scriptedTaskAdded;
291  boost::signal<void ()> signal_receivedScriptedTasks;
292  boost::signal<void (int)> signal_scriptedTaskTypeAdded;
293  boost::signal<void (int)> signal_scriptedTaskTypeRemoved;
294  boost::signal<void ()> signal_doctrinesReceived;
295 
298  boost::signal<void (std::string, bool, std::string)> signal_scriptErrorChange;
299 
301  boost::signal<void (std::string, bool)> signal_scriptModified;
302 
304  boost::signal<void ()> signal_scriptModifiedCleared;
305 
307  boost::signal<void (int, std::string)> signal_scriptRemovedFromTaskMenu;
308 
310  boost::signal<void (int, std::string)> signal_scriptAddedToTaskMenu;
311 
313  boost::signal<void (int, std::string)> signal_assignedDoctrineChanged;
314 
315  protected:
317  virtual void responseTick();
318 
319  protected:
324 
325  unsigned int myRequestId;
326 
327  typedef std::map<std::string, int> ScriptIdToActionIdMap;
329 
330  DtSimulationAddress myScriptMonitorAddress;
331  std::map<std::string, int> myMonitoring;
332 
336 
338 
340 
341  time_t mySendTime;
343  };
344 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)