VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptedTaskTask.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
12 #include "vrftasks/simTask.h"
15 #include <readerWriter/rwString.h>
19 
21 
22 class DtUUID;
24 class DtRwVectorList;
25 
31 
34 {
35 public:
37  {
38  public:
39  virtual DtString stringRep(const DtScriptedTask&) const = 0;
40  virtual DtString stringRep(const DtString& scriptId, const DtRwVariableBindings& variables, const DtRwVariableBindings& variableDataTypes) const = 0;
41  };
42 
44  virtual ~DtScriptedTask() {};
45 
47  virtual bool init() = 0;
48 
50  virtual const DtString& scriptId() const = 0;
51  virtual void setScriptId(const DtString&) = 0;
52 
54  virtual DtRwVariableBindings& variables() = 0;
55  virtual const DtRwVariableBindings& variables() const = 0;
56 
59  virtual DtRwVariableBindings& variableDataTypes() = 0;
60  virtual const DtRwVariableBindings& variableDataTypes() const = 0;
61 
64 
67  virtual int netRepSize() const = 0;
68 
70  virtual bool setFromNet(const char* contentBuffer,
71  unsigned contentSize) = 0;
72 
73  virtual char* setToNet(char*) = 0;
75 
76  static void setScriptedTaskFormatter(ScriptedTaskFormatter*);
77  static ScriptedTaskFormatter* scriptedTaskFormatter();
78 
79  virtual DtString allVariablesStringRep(const DtString& scriptName = "") const = 0;
80 
81 public:
86  virtual void setValue(const DtString& variableName, bool, const char* type = DtScriptedTaskCheckBoxVariable);
87  virtual void setValue(const DtString& variableName, int, const char* type = DtScriptedTaskIntegerVariable);
88  virtual void setValue(const DtString& variableName, double, const char* type = DtScriptedTaskDoubleVariable);
89  virtual void setValue(const DtString& variableName, const std::string&, const char* type = DtScriptedTaskStringVariable);
90  virtual void setValue(const DtString& variableName, const DtString&, const char* type = DtScriptedTaskStringVariable);
91  virtual void setValue(const DtString& variableName, const char*, const char* type = DtScriptedTaskStringVariable);
92  virtual void setValue(const DtString& variableName, const DtUUID&, const char* type = DtScriptedTaskSimulationObjectVariable);
93  virtual void setValue(const DtString& variableName, const DtVector&, const char* type = DtScriptedTaskLocationVariable);
94  virtual void setValue(const DtString& variableName, const DtEntityType&, const char* type = DtScriptedTaskEntityTypeVariable);
95  virtual void setValue(const DtString& variableName, const DtTaitBryan&, const char* type = DtScriptedTaskOrientationVariable);
96  virtual void setValue(const DtString& variableName, const DtRwOffsetVectorList&);
97  virtual void setValue(const DtString& variableName, const DtRwVectorList&);
98  virtual void setValue(const DtString& variableName, const std::vector<DtUUID>&);
99  virtual void setValue(const DtString& variableName, const std::vector<DtVector>&);
100  virtual void setValue(const DtString& variableName, const std::map<DtString, int>&);
101  virtual void setValue(const DtString& variableName, const std::map<DtString, double>&);
102  virtual void setValue(const DtString& variableName, const std::map<DtString, DtString>&);
103 
105  virtual void setLocation(const DtString& variableName, const DtVector&);
106  virtual void setLocationWithoutAltitude(const DtString& variableName, const DtVector&);
107  virtual void setOffset(const DtString& variableName, const DtRwOffsetVector&);
108  virtual void setTime(const DtString& variableName, double);
109  virtual void setDateTime(const DtString& variableName, double);
110  virtual void setRange(const DtString& variableName, double);
111  virtual void setAltitude(const DtString& variableName, double);
112  virtual void setHeading(const DtString& variableName, double);
113 
116  virtual void setValue(const DtString& variableName, const DtReaderWriter&, const char* scriptedTaskType);
117 
118  template<typename T>
119  struct identity { typedef T type; };
120 
122  template <typename RWValue, typename AssignType>
123  void setValue(const DtString& variableName, AssignType value, const char* type)
124  {
125  setValue(variableName, value, type, identity<RWValue>(), identity<AssignType>());
126  }
127 
132 private:
133  template <typename RWValue, typename AssignType>
134  void setValue(const DtString& variableName, AssignType value, const char* type, identity<RWValue>, identity<AssignType>)
135  {
136  RWValue* var = new RWValue(variableName);
137 
138  *var = value;
139  this->variables().addVariable(var);
140  this->variableDataTypes().addVariable(new DtRwString(variableName, type));
141  }
142 
143  void setValue(
144  const DtString& variableName, std::map<DtString, DtString> value, const char* type,
145  identity<DtRwStringAttributeList>, identity<std::map<DtString, DtString> >)
146  {
147  DtRwStringAttributeList* var = new DtRwStringAttributeList(variableName);
148 
149  var->setFromMap(value);
150  this->variables().addVariable(var);
151  this->variableDataTypes().addVariable(new DtRwString(variableName, type));
152  }
153 
154 public:
155 
156  template <typename T>
157  boost::optional<T> getValue(const DtString& variableName) const
158  {
159  return findVariableBindingValue<T>(variables(), variableName);
160  }
161 
163  virtual const DtReaderWriter* getValueRW(const DtString& name) const;
164  virtual DtReaderWriter* getValueRW(const DtString& name);
165 
167 
168 protected:
170 };
171 
172 template<class T> class DtScriptedTaskTemplate : public T, public DtScriptedTask
173 {
174 
175 public:
176 
179 
182  DtScriptedTaskTemplate(const DtString & writeName,
183  DtReaderWriterRegistry * parentRegistry = 0);
184 
186  DtScriptedTaskTemplate(const DtString & writeName, const DtScriptedTaskTemplate & orig,
187  DtReaderWriterRegistry * parentRegistry = 0);
188 
191 
194 
195  virtual ~DtScriptedTaskTemplate();
196 
199  virtual DtString stringRep() const;
200 
202  virtual DtString allVariablesStringRep(const DtString& scriptName = "") const;
203 
206  virtual int netRepSize() const;
207 
209  virtual bool setFromNet(const char* contentBuffer,
210  unsigned contentSize);
211 
213  virtual bool init();
214 
217  virtual bool setToNet();
218  virtual char* setToNet(char*);
219 
221  virtual DtRwVariableBindings& variables();
222  virtual const DtRwVariableBindings& variables() const;
223 
224  virtual void setVariables(const DtRwVariableBindings&);
225 
229  virtual const DtRwVariableBindings& variableDataTypes() const;
230 
232  virtual void setScriptId(const DtString&);
233  virtual const DtString& scriptId() const;
234 
236  virtual void getSelf(DtlObjPtr args,
239  virtual void getSelf(const DtEnvironmentSP, const DtEnvValueSP root,
241  const DtVariableBindingsList& bindings = DtVariableBindingsList());
242 
243 protected:
244  virtual void upgradeVariables();
245 
246 protected:
250 };
251 
254 {
255 public:
257  DtScriptedTaskStringRepHelper(const std::vector<DtScriptedTaskVariable>&);
258 
260 
261  virtual bool isDisplayableSymbol(const DtString& s, const DtReaderWriter* value, const DtReaderWriter* type) const;
262  virtual bool isDisplayableScriptSymbol(const DtString& scriptId, const DtString& scriptVariableName) const;
263 
264 protected:
265  std::map<std::string, DtScriptedTaskVariable> myVariables;
266 };
267 
270 {
271 public:
274 
277  DtScriptedTaskTask(const DtString & writeName,
278  DtReaderWriterRegistry * parentRegistry = 0);
279 
281  DtScriptedTaskTask(const DtString & writeName, const DtScriptedTaskTask & orig,
282  DtReaderWriterRegistry * parentRegistry = 0);
283 
285  DtScriptedTaskTask(const DtScriptedTaskTask & orig );
286 
288  const DtScriptedTaskTask & operator=(const DtScriptedTaskTask & orig);
289 
290  virtual ~DtScriptedTaskTask();
291 
293  virtual const DtSimTaskMessageType& type() const;
294 
296  virtual int scriptPriority() const;
297 
299  virtual void setScriptPriority(int);
300 
303  virtual bool scriptEnabled() const;
304 
306  virtual void setScriptEnabled(bool);
307 
309  virtual bool scriptActive() const;
310 
312  virtual void setScriptActive(bool);
313 
315  virtual DtSimTask* clone(const DtString & name, DtReaderWriterRegistry *
316  parentRegistry = 0) const;
317 
318  static DtSimTask * creator();
319 
320 protected:
322 };
323 
324 namespace DtBufferSerialize
325 {
326  DT_DLL_vrftasks int getSize(const DtScriptedTask& list);
327  DT_DLL_vrftasks char* encode(const DtScriptedTask& list, char* buffer);
328  DT_DLL_vrftasks const char* decode(DtScriptedTask& list, const char* buffer);
329 }

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)