12 #include <vlutil/vlString.h>
13 #include <luabind/luabind.hpp>
28 virtual void process(
const std::string&, luabind::object
const& parameters) = 0;
31 virtual bool isValid()
const = 0;
34 virtual bool specified()
const = 0;
37 template <
typename _Container>
63 virtual void process(
const std::string& parameter, luabind::object
const& parameters)
65 luabind::object tableEntry = parameters[parameter];
66 if (tableEntry.is_valid())
68 if (luabind::type(tableEntry) != LUA_TNIL)
70 myValue = luabind::object_cast<_Container>(tableEntry);
109 template <
typename _Container>
132 virtual void process(
const std::string& parameter, luabind::object
const& parameters)
134 luabind::object tableEntry = parameters[parameter];
135 if (tableEntry.is_valid())
137 if (luabind::type(tableEntry) == LUA_TTABLE)
139 for (luabind::iterator paramItr(tableEntry), end; paramItr != end; ++paramItr)
141 _Container
value = luabind::object_cast<_Container>(*paramItr);
142 this->
myValue.push_back(value);
174 virtual void process(
const std::string& parameter, luabind::object
const& parameters)
176 luabind::object tableEntry = parameters[parameter];
177 if (tableEntry.is_valid())
179 if (luabind::type(tableEntry) == LUA_TNUMBER)
184 else if (luabind::type(tableEntry) != LUA_TNIL)
186 myValue =
DtString(luabind::object_cast<std::string>(tableEntry).c_str());
212 void removeVariableParameter(
const std::string&);
214 template <
typename _Container>
void addVariableParameter(
const std::string& s)
219 template <
typename _Container>
void addRequiredVariableParameter(
const std::string& s)
224 template <
typename _Container>
void addVariableParameterVector(
const std::string& s)
229 template <
typename _Container>
void addRequiredVariableParameterVector(
const std::string& s)
234 template <
typename _Container> _Container value(
const std::string& key)
const
236 VariableParameters::const_iterator iter = myVariableParameters.find(key);
238 if (iter != myVariableParameters.end())
246 template <
typename _Container>
void set(
const std::string& key,
const _Container& value)
248 VariableParameters::iterator iter = myVariableParameters.find(key);
250 if (iter != myVariableParameters.end())
257 virtual bool valueIsSpecified(
const std::string&)
const;
261 virtual void process(luabind::object
const& parameters);