VR-Forces 5.0.1 Developer's Guide
 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 
38 {
39 public:
41  {
42  public:
43  virtual DtString stringRep(const DtScriptedTask&) const = 0;
44  virtual DtString stringRep(const DtString& scriptId, const DtRwVariableBindings& variables, const DtRwVariableBindings& variableDataTypes) const = 0;
45  };
46 
48  virtual ~DtScriptedTask() {};
49 
51  virtual bool init() = 0;
52 
54  virtual const DtString& scriptId() const = 0;
55  virtual void setScriptId(const DtString&) = 0;
56 
58  virtual DtRwVariableBindings& variables() = 0;
59  virtual const DtRwVariableBindings& variables() const = 0;
60 
63  virtual DtRwVariableBindings& variableDataTypes() = 0;
64  virtual const DtRwVariableBindings& variableDataTypes() const = 0;
65 
68 
71  virtual int netRepSize() const = 0;
72 
74  virtual bool setFromNet(const char* contentBuffer,
75  unsigned contentSize) = 0;
76 
77  virtual char* setToNet(char*) = 0;
79 
80  static void setScriptedTaskFormatter(ScriptedTaskFormatter*);
81  static ScriptedTaskFormatter* scriptedTaskFormatter();
82 
83  virtual DtString allVariablesStringRep(const DtString& scriptName = "") const = 0;
84 
85 public:
90  virtual void setValue(const DtString& variableName, bool, const char* type = DtScriptedTaskCheckBoxVariable);
91  virtual void setValue(const DtString& variableName, int, const char* type = DtScriptedTaskIntegerVariable);
92  virtual void setValue(const DtString& variableName, double, const char* type = DtScriptedTaskDoubleVariable);
93  virtual void setValue(const DtString& variableName, const std::string&, const char* type = DtScriptedTaskStringVariable);
94  virtual void setValue(const DtString& variableName, const DtString&, const char* type = DtScriptedTaskStringVariable);
95  virtual void setValue(const DtString& variableName, const char*, const char* type = DtScriptedTaskStringVariable);
96  virtual void setValue(const DtString& variableName, const DtUUID&, const char* type = DtScriptedTaskSimulationObjectVariable);
97  virtual void setValue(const DtString& variableName, const DtVector&, const char* type = DtScriptedTaskLocationVariable);
98  virtual void setValue(const DtString& variableName, const DtEntityType&, const char* type = DtScriptedTaskEntityTypeVariable);
99  virtual void setValue(const DtString& variableName, const DtTaitBryan&, const char* type = DtScriptedTaskOrientationVariable);
100  virtual void setValue(const DtString& variableName, const DtRwOffsetVectorList&);
101  virtual void setValue(const DtString& variableName, const DtRwVectorList&);
102  virtual void setValue(const DtString& variableName, const std::vector<DtUUID>&);
103  virtual void setValue(const DtString& variableName, const std::vector<DtVector>&);
104  virtual void setValue(const DtString& variableName, const std::map<DtString, int>&);
105  virtual void setValue(const DtString& variableName, const std::map<DtString, double>&);
106  virtual void setValue(const DtString& variableName, const std::map<DtString, DtString>&);
107 
109  virtual void setLocation(const DtString& variableName, const DtVector&);
110  virtual void setLocationWithoutAltitude(const DtString& variableName, const DtVector&);
111  virtual void setOffset(const DtString& variableName, const DtRwOffsetVector&);
112  virtual void setTime(const DtString& variableName, double);
113  virtual void setDateTime(const DtString& variableName, double);
114  virtual void setRange(const DtString& variableName, double);
115  virtual void setAltitude(const DtString& variableName, double);
116  virtual void setHeading(const DtString& variableName, double);
117  virtual void setPitch(const DtString& variableName, double);
118 
121  virtual void setValue(const DtString& variableName, const DtReaderWriter&, const char* scriptedTaskType);
122 
123  template<typename T>
124  struct identity { typedef T type; };
125 
127  template <typename RWValue, typename AssignType>
128  void setValue(const DtString& variableName, AssignType value, const char* type)
129  {
130  setValue(variableName, value, type, identity<RWValue>(), identity<AssignType>());
131  }
132 
137 private:
138  template <typename RWValue, typename AssignType>
139  void setValue(const DtString& variableName, AssignType value, const char* type, identity<RWValue>, identity<AssignType>)
140  {
141  RWValue* var = new RWValue(variableName);
142 
143  *var = value;
144  this->variables().addVariable(var);
145  this->variableDataTypes().addVariable(new DtRwString(variableName, type));
146  }
147 
148  void setValue(
149  const DtString& variableName, std::map<DtString, DtString> value, const char* type,
150  identity<DtRwStringAttributeList>, identity<std::map<DtString, DtString> >)
151  {
152  DtRwStringAttributeList* var = new DtRwStringAttributeList(variableName);
153 
154  var->setFromMap(value);
155  this->variables().addVariable(var);
156  this->variableDataTypes().addVariable(new DtRwString(variableName, type));
157  }
158 
159 public:
160 
161  template <typename T>
162  boost::optional<T> getValue(const DtString& variableName) const
163  {
164  return findVariableBindingValue<T>(variables(), variableName);
165  }
166 
168  virtual const DtReaderWriter* getValueRW(const DtString& name) const;
169  virtual DtReaderWriter* getValueRW(const DtString& name);
170 
172 
173 protected:
175 };
176 
177 template<class T> class DtScriptedTaskTemplate : public T, public DtScriptedTask
178 {
179 
180 public:
181 
184 
187  DtScriptedTaskTemplate(const DtString & writeName,
188  DtReaderWriterRegistry * parentRegistry = 0);
189 
191  DtScriptedTaskTemplate(const DtString & writeName, const DtScriptedTaskTemplate & orig,
192  DtReaderWriterRegistry * parentRegistry = 0);
193 
196 
199 
200  virtual ~DtScriptedTaskTemplate();
201 
204  virtual DtString stringRep() const;
205 
207  virtual DtString allVariablesStringRep(const DtString& scriptName = "") const;
208 
211  virtual int netRepSize() const;
212 
214  virtual bool setFromNet(const char* contentBuffer,
215  unsigned contentSize);
216 
218  virtual bool init();
219 
222  virtual bool setToNet();
223  virtual char* setToNet(char*);
224 
226  virtual DtRwVariableBindings& variables();
227  virtual const DtRwVariableBindings& variables() const;
228 
229  virtual void setVariables(const DtRwVariableBindings&);
230 
234  virtual const DtRwVariableBindings& variableDataTypes() const;
235 
237  virtual void setScriptId(const DtString&);
238  virtual const DtString& scriptId() const;
239 
241  virtual void getSelf(DtlObjPtr args,
244  virtual void getSelf(const DtEnvironmentSP, const DtEnvValueSP root,
246  const DtVariableBindingsList& bindings = DtVariableBindingsList());
247 
248 protected:
249  virtual void upgradeVariables();
250 
251 protected:
255 };
256 
259 {
260 public:
262  DtScriptedTaskStringRepHelper(const std::vector<DtScriptedTaskVariable>&);
263 
265 
266  virtual bool isDisplayableSymbol(const DtString& s, const DtReaderWriter* value, const DtReaderWriter* type) const;
267  virtual bool isDisplayableScriptSymbol(const DtString& scriptId, const DtString& scriptVariableName) const;
268 
269 protected:
270  std::map<std::string, DtScriptedTaskVariable> myVariables;
271 };
272 
275 {
276 public:
279 
282  DtScriptedTaskTask(const DtString & writeName,
283  DtReaderWriterRegistry * parentRegistry = 0);
284 
286  DtScriptedTaskTask(const DtString & writeName, const DtScriptedTaskTask & orig,
287  DtReaderWriterRegistry * parentRegistry = 0);
288 
290  DtScriptedTaskTask(const DtScriptedTaskTask & orig );
291 
293  const DtScriptedTaskTask & operator=(const DtScriptedTaskTask & orig);
294 
295  virtual ~DtScriptedTaskTask();
296 
298  virtual const DtSimTaskMessageType& type() const;
299 
301  virtual int scriptPriority() const;
302 
304  virtual void setScriptPriority(int);
305 
308  virtual bool scriptEnabled() const;
309 
311  virtual void setScriptEnabled(bool);
312 
314  virtual bool scriptActive() const;
315 
317  virtual void setScriptActive(bool);
318 
320  virtual DtSimTask* clone(const DtString & name, DtReaderWriterRegistry *
321  parentRegistry = 0) const;
322 
323  static DtSimTask * creator();
324 
325 protected:
327 };
328 
329 namespace DtBufferSerialize
330 {
331  DT_DLL_vrftasks int getSize(const DtScriptedTask& list);
332  DT_DLL_vrftasks char* encode(const DtScriptedTask& list, char* buffer);
333  DT_DLL_vrftasks const char* decode(DtScriptedTask& list, const char* buffer);
334 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
virtual DtString allVariablesStringRep(const DtString &scriptName="") const
Returns all the variables in a single string.
Definition: scriptedTaskTask.h:40
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:139
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:174
DtScriptedTaskStringRepHelper()
Definition: scriptedTaskTask.h:261
T type
Definition: scriptedTaskTask.h:124
Helper class to format scripted tasks for output.
Definition: scriptedTaskTask.h:258
static const char * DtScriptedTaskStringVariable
Definition: vrfScriptedTasksConstants.h:11
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:48
virtual DtRwVariableBindings & variableDataTypes()
Access to the data types that represent the variables. This is the internal scripted task data type s...
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:32
DtScriptedTask()
Definition: scriptedTaskTask.h:47
Definition: stringRepHelper.h:20
DtRwString myScriptId
Definition: scriptedTaskTask.h:252
std::map< std::string, DtScriptedTaskVariable > myVariables
Definition: scriptedTaskTask.h:270
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
virtual ~DtScriptedTaskStringRepHelper()
Definition: scriptedTaskTask.h:264
Specialized classes.
Definition: scriptedTaskTask.h:274
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
Definition: scriptedTaskTask.h:177
Definition: scriptedTaskTask.h:124
The DtScriptedTaskTask will encapsulate the variables defined by a scripted task in the variable bind...
Definition: scriptedTaskTask.h:37
boost::optional< T > getValue(const DtString &variableName) const
Definition: scriptedTaskTask.h:162
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. buffer must have at least the number of bytes returned...
virtual DtRwVariableBindings & variables()
Access to variables.
static const char * DtScriptedTaskIntegerVariable
Types of scripted task variables.
Definition: vrfScriptedTasksConstants.h:9
#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:15
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:253
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. It manages the read/write capab...
Definition: simTask.h:30
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:128
DtRwVariableBindings myVariableDataTypes
Definition: scriptedTaskTask.h:254
virtual void setScriptId(const DtString &)
Script to run.
static const char * DtScriptedTaskOrientationVariable
Definition: vrfScriptedTasksConstants.h:62
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:326
static const char * DtScriptedTaskCheckBoxVariable
Definition: vrfScriptedTasksConstants.h:42
virtual DtString stringRep() const
Get a readable string representation of this task. If a formatter is assigned calls the formatter...
static const char * DtScriptedTaskSimulationObjectVariable
Definition: vrfScriptedTasksConstants.h:36
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:148
virtual void upgradeVariables()
class DtRwStringAttributeList:
Definition: rwStringAttributeList.h:29
virtual ~DtScriptedTaskTemplate()
static const char * DtScriptedTaskDoubleVariable
Definition: vrfScriptedTasksConstants.h:14

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)