VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
taskSetBuilder.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrfLua/vrfLuaDefines.h>
12 #include <vlutil/vlString.h>
13 #include <luabind/luabind.hpp>
14 #include <set>
15 #include <vlutil/vlFilename.h>
18 
19 class DtSimTaskFactory;
20 class DtSimTask;
22 class DtReaderWriter;
23 class DtSetDataRequest;
25 class DtSimCommand;
27 
31 {
32 private:
34 
37  DtTaskSetBuilder& operator=(const DtTaskSetBuilder& orig);
39 public:
40  DtTaskSetBuilder(const DtScriptedTaskManager* scriptedTaskManager);
41 
42  virtual DtSimTask* buildTask(const DtSimTaskMessageType& taskType,
43  luabind::object const& parameters);
44 
45  virtual DtSetDataRequest* buildSet(const DtSetMessageType& setType,
46  luabind::object const& parameters);
47 
48  virtual DtSimCommand* buildSimCommand(const DtSimCommandMessageType& setType,
49  luabind::object const& parameters);
50 
51 public:
52 
55  virtual DtReaderWriter* scriptedTaskVariableToReaderWriter(const DtScriptedTaskVariable& variable,
56  luabind::object const& parameters);
57 
60  virtual bool fillInParameter(DtReaderWriter* rw, luabind::object const& parameters,
61  DtString& usedParam);
62 
63  virtual bool fillInTemplatedList(const DtString& paramName, DtRwTemplatedListInterface* result, luabind::object const& parameters);
64 
67  DtString paramDetailsString(DtReaderWriter* rw, bool longForm);
68 
72  virtual DtString availableParamsString(DtReaderWriter* taskOrSet, bool longForm = false);
73 
75  virtual DtSetDataRequest* buildSetReactiveTaskEnabled(luabind::object const& parameters);
76 
79  typedef bool (*findParamFcn)(const DtString& paramName, luabind::object const& parameters,
80  DtReaderWriter* result, const DtScriptedTaskManager*);
81 
82  static bool findPropertyParam(const DtString& paramName, luabind::object const& parameters,
83  DtReaderWriter* result, const DtScriptedTaskManager*);
84 
85  static bool findStringParam(const DtString& paramName, luabind::object const& parameters,
86  DtReaderWriter* result, const DtScriptedTaskManager*);
87 
88  static bool findAerodromeElementsParam(const DtString& paramName, luabind::object const& parameters,
89  DtReaderWriter* result, const DtScriptedTaskManager*);
90 
91  static bool findObjectNameStringParam(const DtString& paramName, luabind::object const& parameters,
92  DtReaderWriter* result, const DtScriptedTaskManager*);
93 
94  static bool findUUIDParam(const DtString& paramName, luabind::object const& parameters,
95  DtReaderWriter* result, const DtScriptedTaskManager*);
96 
97  static bool findAnimationModelParam(const DtString& paramName, luabind::object const& parameters,
98  DtReaderWriter* result, const DtScriptedTaskManager*);
99 
100  static bool findIntParam(const DtString& paramName, luabind::object const& parameters,
101  DtReaderWriter* result, const DtScriptedTaskManager*);
102 
103  static bool findDoubleParam(const DtString& paramName, luabind::object const& parameters,
104  DtReaderWriter* result, const DtScriptedTaskManager*);
105 
106  static bool findBoolParam(const DtString& paramName, luabind::object const& parameters,
107  DtReaderWriter* result, const DtScriptedTaskManager*);
108 
109  static bool findHeadingParam(const DtString& paramName, luabind::object const& parameters,
110  DtReaderWriter* result, const DtScriptedTaskManager*);
111 
112  static bool findLocationReferenceParam(const DtString& paramName, luabind::object const& parameters,
113  DtReaderWriter* result, const DtScriptedTaskManager*);
114 
115  static bool decodeLocationReferenceFromLua(luabind::object const& luaObj, DtRwLocationReference* result);
116 
117  static bool findVectorParam(const DtString& paramName, luabind::object const& parameters,
118  DtReaderWriter* result, const DtScriptedTaskManager*);
119 
120  static bool findTaitBryanParam(const DtString& paramName, luabind::object const& parameters,
121  DtReaderWriter* result, const DtScriptedTaskManager*);
122 
123  static bool findPriorityTargetListParam(const DtString& paramName, luabind::object const& parameters,
124  DtReaderWriter* result, const DtScriptedTaskManager*);
125 
126  static bool findRailSegmentListParam(const DtString& paramName, luabind::object const& parameters,
127  DtReaderWriter* result, const DtScriptedTaskManager*);
128 
129  static bool findOffsetVectorParam(const DtString& paramName, luabind::object const& parameters,
130  DtReaderWriter* result, const DtScriptedTaskManager*);
131 
132  static bool findLifeformPostureParam(const DtString& paramName, luabind::object const& parameters,
133  DtReaderWriter* result, const DtScriptedTaskManager*);
134 
135  static bool findLifeformWeaponStateParam(const DtString& paramName, luabind::object const& parameters,
136  DtReaderWriter* result, const DtScriptedTaskManager*);
137 
138  static bool findAggregateStateParam(const DtString& paramName, luabind::object const& parameters,
139  DtReaderWriter* result, const DtScriptedTaskManager*);
140 
141  static bool findForceTypeParam(const DtString& paramName, luabind::object const& parameters,
142  DtReaderWriter* result, const DtScriptedTaskManager*);
143 
144  static bool findNLengthStringVectorParam(const DtString& paramName, luabind::object const& parameters,
145  DtReaderWriter* result, const DtScriptedTaskManager*);
146 
147  static bool findStringAttributeListParam(const DtString& paramName, luabind::object const& parameters,
148  DtReaderWriter* result, const DtScriptedTaskManager*);
149 
150  static bool findNLengthUUIDVectorParam(const DtString& paramName, luabind::object const& parameters,
151  DtReaderWriter* result, const DtScriptedTaskManager*);
152 
153  static bool findStringListParam(const DtString& paramName, luabind::object const& parameters,
154  DtReaderWriter* result, const DtScriptedTaskManager*);
155 
156  static bool findVectorListParam(const DtString& paramName, luabind::object const& parameters,
157  DtReaderWriter* result, const DtScriptedTaskManager*);
158 
159  static bool findOffsetVectorListParam(const DtString& paramName, luabind::object const& parameters,
160  DtReaderWriter* result, const DtScriptedTaskManager*);
161 
162  static bool findEntityTypeParam(const DtString& paramName, luabind::object const& parameters,
163  DtReaderWriter* result, const DtScriptedTaskManager*);
164 
165  static bool findResourceTypeParam(const DtString& paramName, luabind::object const& parameters,
166  DtReaderWriter* result, const DtScriptedTaskManager*);
167 
168  static bool findRealAttributeListParam(const DtString& paramName, luabind::object const& parameters,
169  DtReaderWriter* result, const DtScriptedTaskManager*);
170 
171  static bool findKeyValueListParam(const DtString& paramName, luabind::object const& parameters,
172  DtReaderWriter* result, const DtScriptedTaskManager*);
173 
174  static bool findIntListParam(const DtString& paramName, luabind::object const& parameters,
175  DtReaderWriter* result, const DtScriptedTaskManager*);
176 
177  static bool findAirSpeedTypeParam(const DtString& paramName, luabind::object const& parameters,
178  DtReaderWriter* result, const DtScriptedTaskManager*);
179 
180  static bool findPatchIdentifierParam(const DtString& paramName, luabind::object const& parameters,
181  DtReaderWriter* result, const DtScriptedTaskManager*);
182 
183  static bool findKeplerOrbitalElementsParam(const DtString& paramName, luabind::object const& parameters,
184  DtReaderWriter* result, const DtScriptedTaskManager*);
185 
186 protected:
187  virtual bool fillInReaderWriterType(const DtString& paramName, luabind::object const& parameters,
188  DtReaderWriter* result, bool& error);
189 
192  DtString convertToLuaSymbol(const DtString& inputString);
193 
195  virtual bool findValidTaskType(const DtSimTaskMessageType& taskType, DtSimTaskMessageType& taskTypeToUse) const;
196 
198  virtual DtSetDataRequest* findValidSetType(const DtSetMessageType& setType, DtSetMessageType& setTypeToUse) const;
199 
200 protected:
202 
203  typedef DtString (*printRwFcn)(DtReaderWriter* rw);
204 
207  struct RwParamInfo
208  {
209  RwParamInfo(findParamFcn gpf, DtString lpt, printRwFcn pvf)
210  : getParamFcn(gpf), luaParamType(lpt), printValFcn(pvf) {};
211  RwParamInfo() : getParamFcn(0), luaParamType(0), printValFcn(0) {};
212 
213  findParamFcn getParamFcn;
215  printRwFcn printValFcn;
216 
217  };
218 
219  typedef std::map<DtString, RwParamInfo> DtParamFcnMap ;
221 
223  std::set<DtString> myParamsIgnored;
224 };
Factory for DtSimTask instances used in messages. Overridden from the template class to specialize th...
Definition: simTaskFactory.h:22
std::map< DtString, RwParamInfo > DtParamFcnMap
Definition: taskSetBuilder.h:219
Class which builds tasks dynamically based on a set of parameters passed in from a Lua Script call...
Definition: taskSetBuilder.h:30
Structure used in myFindParamFcnMap to store info on various RW types used as parameters in tasks and...
Definition: taskSetBuilder.h:207
Manage scripted tasks (primarily Lua tasks) known by VR-Forces.
Definition: scriptedTaskManager.h:76
Holds a position of some form. May be an absolute position, or a reference to another object...
Definition: rwLocationReference.h:25
RwParamInfo(findParamFcn gpf, DtString lpt, printRwFcn pvf)
Definition: taskSetBuilder.h:209
A version of DtRwList that contains a homogeneous list of a templated RW type. The templated type spe...
Definition: rwTemplatedList.h:25
Definition: readerWriter.h:85
std::set< DtString > myParamsIgnored
List of parameters that are ignored.
Definition: taskSetBuilder.h:223
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
DtParamFcnMap myFindParamFcnMap
Definition: taskSetBuilder.h:220
#define DT_DLL_vrfLua
This file is used to determine how to build.
Definition: vrfLuaDefines.h:25
printRwFcn printValFcn
Definition: taskSetBuilder.h:215
A class for keeping track of meta data for variables of scripted tasks. The information is currently ...
Definition: scriptedTaskVariable.h:34
DtSimCommand is an abstract base class from which commands can derive. It manages the read/write capa...
Definition: simCommand.h:32
Definition: asyncJobServer.h:39
const DtScriptedTaskManager * myScriptedTaskManager
Definition: taskSetBuilder.h:201
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
DtString luaParamType
Definition: taskSetBuilder.h:214
RwParamInfo()
Definition: taskSetBuilder.h:211

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)