VR-Forces 4.8 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  virtual void setPitch(const DtString& variableName, double);
114 
117  virtual void setValue(const DtString& variableName, const DtReaderWriter&, const char* scriptedTaskType);
118 
119  template<typename T>
120  struct identity { typedef T type; };
121 
123  template <typename RWValue, typename AssignType>
124  void setValue(const DtString& variableName, AssignType value, const char* type)
125  {
126  setValue(variableName, value, type, identity<RWValue>(), identity<AssignType>());
127  }
128 
133 private:
134  template <typename RWValue, typename AssignType>
135  void setValue(const DtString& variableName, AssignType value, const char* type, identity<RWValue>, identity<AssignType>)
136  {
137  RWValue* var = new RWValue(variableName);
138 
139  *var = value;
140  this->variables().addVariable(var);
141  this->variableDataTypes().addVariable(new DtRwString(variableName, type));
142  }
143 
144  void setValue(
145  const DtString& variableName, std::map<DtString, DtString> value, const char* type,
146  identity<DtRwStringAttributeList>, identity<std::map<DtString, DtString> >)
147  {
148  DtRwStringAttributeList* var = new DtRwStringAttributeList(variableName);
149 
150  var->setFromMap(value);
151  this->variables().addVariable(var);
152  this->variableDataTypes().addVariable(new DtRwString(variableName, type));
153  }
154 
155 public:
156 
157  template <typename T>
158  boost::optional<T> getValue(const DtString& variableName) const
159  {
160  return findVariableBindingValue<T>(variables(), variableName);
161  }
162 
164  virtual const DtReaderWriter* getValueRW(const DtString& name) const;
165  virtual DtReaderWriter* getValueRW(const DtString& name);
166 
168 
169 protected:
171 };
172 
173 template<class T> class DtScriptedTaskTemplate : public T, public DtScriptedTask
174 {
175 
176 public:
177 
180 
183  DtScriptedTaskTemplate(const DtString & writeName,
184  DtReaderWriterRegistry * parentRegistry = 0);
185 
187  DtScriptedTaskTemplate(const DtString & writeName, const DtScriptedTaskTemplate & orig,
188  DtReaderWriterRegistry * parentRegistry = 0);
189 
192 
195 
196  virtual ~DtScriptedTaskTemplate();
197 
200  virtual DtString stringRep() const;
201 
203  virtual DtString allVariablesStringRep(const DtString& scriptName = "") const;
204 
207  virtual int netRepSize() const;
208 
210  virtual bool setFromNet(const char* contentBuffer,
211  unsigned contentSize);
212 
214  virtual bool init();
215 
218  virtual bool setToNet();
219  virtual char* setToNet(char*);
220 
222  virtual DtRwVariableBindings& variables();
223  virtual const DtRwVariableBindings& variables() const;
224 
225  virtual void setVariables(const DtRwVariableBindings&);
226 
230  virtual const DtRwVariableBindings& variableDataTypes() const;
231 
233  virtual void setScriptId(const DtString&);
234  virtual const DtString& scriptId() const;
235 
237  virtual void getSelf(DtlObjPtr args,
240  virtual void getSelf(const DtEnvironmentSP, const DtEnvValueSP root,
242  const DtVariableBindingsList& bindings = DtVariableBindingsList());
243 
244 protected:
245  virtual void upgradeVariables();
246 
247 protected:
251 };
252 
255 {
256 public:
258  DtScriptedTaskStringRepHelper(const std::vector<DtScriptedTaskVariable>&);
259 
261 
262  virtual bool isDisplayableSymbol(const DtString& s, const DtReaderWriter* value, const DtReaderWriter* type) const;
263  virtual bool isDisplayableScriptSymbol(const DtString& scriptId, const DtString& scriptVariableName) const;
264 
265 protected:
266  std::map<std::string, DtScriptedTaskVariable> myVariables;
267 };
268 
271 {
272 public:
275 
278  DtScriptedTaskTask(const DtString & writeName,
279  DtReaderWriterRegistry * parentRegistry = 0);
280 
282  DtScriptedTaskTask(const DtString & writeName, const DtScriptedTaskTask & orig,
283  DtReaderWriterRegistry * parentRegistry = 0);
284 
286  DtScriptedTaskTask(const DtScriptedTaskTask & orig );
287 
289  const DtScriptedTaskTask & operator=(const DtScriptedTaskTask & orig);
290 
291  virtual ~DtScriptedTaskTask();
292 
294  virtual const DtSimTaskMessageType& type() const;
295 
297  virtual int scriptPriority() const;
298 
300  virtual void setScriptPriority(int);
301 
304  virtual bool scriptEnabled() const;
305 
307  virtual void setScriptEnabled(bool);
308 
310  virtual bool scriptActive() const;
311 
313  virtual void setScriptActive(bool);
314 
316  virtual DtSimTask* clone(const DtString & name, DtReaderWriterRegistry *
317  parentRegistry = 0) const;
318 
319  static DtSimTask * creator();
320 
321 protected:
323 };
324 
325 namespace DtBufferSerialize
326 {
327  DT_DLL_vrftasks int getSize(const DtScriptedTask& list);
328  DT_DLL_vrftasks char* encode(const DtScriptedTask& list, char* buffer);
329  DT_DLL_vrftasks const char* decode(DtScriptedTask& list, const char* buffer);
330 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
virtual DtString allVariablesStringRep(const DtString &scriptName="") const
Returns all the variables in a single string.
Definition: scriptedTaskTask.h:36
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
void setValue(const DtString &variableName, AssignType value, const char *type, identity< RWValue >, identity< AssignType >)
Linux does not allow specialization of member functions within the same class, so to overcome this se...
Definition: scriptedTaskTask.h:135
virtual int netRepSize() const
Returns the size of the full network representation (control object name included) padded to an 8-byt...
static ScriptedTaskFormatter * theScriptedTaskFormatter
Definition: scriptedTaskTask.h:170
DtScriptedTaskStringRepHelper()
Definition: scriptedTaskTask.h:257
T type
Definition: scriptedTaskTask.h:120
Helper class to format scripted tasks for output.
Definition: scriptedTaskTask.h:254
static const char * DtScriptedTaskStringVariable
Definition: vrfScriptedTasksConstants.h:9
DT_DLL_readerWriter DtBoost::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
virtual void setFromMap(const std::map< DtString, DtString > &)
virtual ~DtScriptedTask()
Definition: scriptedTaskTask.h:44
virtual DtRwVariableBindings & variableDataTypes()
Access to the data types that represent the variables.
Definition: readerWriter.h:85
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
virtual bool setToNet()
Fills in the network buffer (created by base class simTask) with the task contents.
virtual bool init()
Initializer.
Definition: readerWriterRegistry.h:39
virtual bool isDisplayableScriptSymbol(const DtString &scriptId, const DtString &scriptName) const
static const char * DtScriptedTaskEntityTypeVariable
Definition: vrfScriptedTasksConstants.h:26
DtScriptedTask()
Definition: scriptedTaskTask.h:43
Definition: stringRepHelper.h:20
DtRwString myScriptId
Definition: scriptedTaskTask.h:248
std::map< std::string, DtScriptedTaskVariable > myVariables
Definition: scriptedTaskTask.h:266
ReaderWriter object that maintains a list of reader-writer variable bindings.
Definition: rwVariableBindings.h:27
virtual ~DtScriptedTaskStringRepHelper()
Definition: scriptedTaskTask.h:260
Specialized classes.
Definition: scriptedTaskTask.h:270
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
Definition: scriptedTaskTask.h:173
Definition: scriptedTaskTask.h:120
The DtScriptedTaskTask will encapsulate the variables defined by a scripted task in the variable bind...
Definition: scriptedTaskTask.h:33
boost::optional< T > getValue(const DtString &variableName) const
Definition: scriptedTaskTask.h:158
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
class DtRwOffsetVectorList:
Definition: rwVectorList.h:63
virtual const DtString & scriptId() const
Script id.
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer.
virtual DtRwVariableBindings & variables()
Access to variables.
static const char * DtScriptedTaskIntegerVariable
Types of scripted task variables.
Definition: vrfScriptedTasksConstants.h:8
#define DT_DLL_vrftasks
This file is used to determine how to build.
Definition: vrftasksDefines.h:26
static const DtVariableBindingsList & nullVariableReference()
static const char * DtScriptedTaskLocationVariable
Definition: vrfScriptedTasksConstants.h:12
virtual bool setFromNet(const char *contentBuffer, unsigned contentSize)
Fills in the task from the network buffer.
Specialized vector that can be used for the knowledge of an &quot;offset&quot; rather than location vector...
Definition: rwVector.h:109
DtRwVariableBindings myVariables
Definition: scriptedTaskTask.h:249
virtual bool isDisplayableSymbol(const DtString &s, const DtReaderWriter *value, const DtReaderWriter *type) const
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:33
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
virtual void setVariables(const DtRwVariableBindings &)
void setValue(const DtString &variableName, AssignType value, const char *type)
General template assignment that will create a new instance of a reader/writer and assign a value to ...
Definition: scriptedTaskTask.h:124
DtRwVariableBindings myVariableDataTypes
Definition: scriptedTaskTask.h:250
virtual void setScriptId(const DtString &)
Script to run.
static const char * DtScriptedTaskOrientationVariable
Definition: vrfScriptedTasksConstants.h:53
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
DtScriptedTaskTemplate()
default constructor
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &variableBindings=DtReaderWriter::nullVariableReference())
Override to upgrade scripted objects from nlength string list to nlength uuid list.
DtSimTaskMessageType myType
Definition: scriptedTaskTask.h:322
static const char * DtScriptedTaskCheckBoxVariable
Definition: vrfScriptedTasksConstants.h:36
virtual DtString stringRep() const
Get a readable string representation of this task.
static const char * DtScriptedTaskSimulationObjectVariable
Definition: vrfScriptedTasksConstants.h:30
const DtScriptedTaskTemplate & operator=(const DtScriptedTaskTemplate &orig)
assignment operator
class DtRwVectorList:
Definition: rwVectorList.h:22
void setValue(const DtString &variableName, std::map< DtString, DtString > value, const char *type, identity< DtRwStringAttributeList >, identity< std::map< DtString, DtString > >)
Definition: scriptedTaskTask.h:144
virtual void upgradeVariables()
class DtRwStringAttributeList:
Definition: rwStringAttributeList.h:29
virtual ~DtScriptedTaskTemplate()
static const char * DtScriptedTaskDoubleVariable
Definition: vrfScriptedTasksConstants.h:11

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)