VR-Forces 4.1 Class Documentation
taskSetBuilder.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 
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;
24 
28 {
29 private:
31 
34  DtTaskSetBuilder& operator=(const DtTaskSetBuilder& orig);
36 public:
37  DtTaskSetBuilder(const DtScriptedTaskManager* scriptedTaskManager);
38 
39  virtual DtSimTask* buildTask(const DtString& taskType,
40  luabind::object const& parameters);
41 
42  virtual DtSetDataRequest* buildSet(const DtString& setType,
43  luabind::object const& parameters);
44 
47  virtual void generateTaskSetLuaDoc(const DtFilename& outputFile);
48 
49 protected:
50 
53  virtual bool fillInParameter(DtReaderWriter* rw, luabind::object const& parameters,
54  DtString& usedParam);
55 
59  virtual DtString availableParamsString(DtReaderWriter* taskOrSet, bool longForm = false);
60 
63  typedef bool (*findParamFcn)(const DtString& paramName, luabind::object const& parameters,
64  DtReaderWriter* result, const DtScriptedTaskManager*);
65 
66  static bool findStringParam(const DtString& paramName, luabind::object const& parameters,
67  DtReaderWriter* result, const DtScriptedTaskManager*);
68 
69  static bool findIntParam(const DtString& paramName, luabind::object const& parameters,
70  DtReaderWriter* result, const DtScriptedTaskManager*);
71 
72  static bool findDoubleParam(const DtString& paramName, luabind::object const& parameters,
73  DtReaderWriter* result, const DtScriptedTaskManager*);
74 
75  static bool findBoolParam(const DtString& paramName, luabind::object const& parameters,
76  DtReaderWriter* result, const DtScriptedTaskManager*);
77 
78  static bool findVectorParam(const DtString& paramName, luabind::object const& parameters,
79  DtReaderWriter* result, const DtScriptedTaskManager*);
80 
81  static bool findOffsetVectorParam(const DtString& paramName, luabind::object const& parameters,
82  DtReaderWriter* result, const DtScriptedTaskManager*);
83 
84  static bool findLifeformPostureParam(const DtString& paramName, luabind::object const& parameters,
85  DtReaderWriter* result, const DtScriptedTaskManager*);
86 
87  static bool findLifeformWeaponStateParam(const DtString& paramName, luabind::object const& parameters,
88  DtReaderWriter* result, const DtScriptedTaskManager*);
89 
90  static bool findAggregateStateParam(const DtString& paramName, luabind::object const& parameters,
91  DtReaderWriter* result, const DtScriptedTaskManager*);
92 
93  static bool findForceTypeParam(const DtString& paramName, luabind::object const& parameters,
94  DtReaderWriter* result, const DtScriptedTaskManager*);
95 
98  DtString convertToLuaSymbol(const DtString& inputString);
99 
101  virtual DtString generateRwLuaDoc(DtReaderWriter& rw);
102 
105  virtual bool cleanTaskName(DtString& taskName);
106 
107 protected:
109 
110  typedef DtString (*printRwFcn)(DtReaderWriter* rw);
111 
114  struct RwParamInfo
115  {
116  RwParamInfo(findParamFcn gpf, DtString lpt, printRwFcn pvf)
117  : getParamFcn(gpf), luaParamType(lpt), printValFcn(pvf) {};
118  RwParamInfo() : getParamFcn(0), luaParamType(0), printValFcn(0) {};
119 
120  findParamFcn getParamFcn;
122  printRwFcn printValFcn;
123 
124  };
125 
126  typedef std::map<DtString, RwParamInfo> DtParamFcnMap ;
128 
130  std::set<DtString> myParamsIgnored;
131  std::set<DtSimTaskMessageType> myIgnoredTasks;
132  std::set<DtSetMessageType> myIgnoredSets;
133 };
134 
136 {
137 public:
138 
141  virtual bool execute(const DtString& arguments);
142  virtual bool showInHelp() const;
143  virtual DtString help(const DtString& parameters);
144 };

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)