37 #ifndef OMPL_BASE_GENERIC_PARAM_
38 #define OMPL_BASE_GENERIC_PARAM_
41 #include "ompl/util/ClassForward.h"
42 #include <boost/function.hpp>
43 #include <boost/lexical_cast.hpp>
90 virtual bool setValue(
const std::string &value) = 0;
93 virtual std::string
getValue(
void)
const = 0;
101 setValue(boost::lexical_cast<std::string>(value));
103 catch (boost::bad_lexical_cast &e)
105 logWarn(
"Invalid value format specified for parameter '%s': %s",
name_.c_str(), e.what());
135 logError(
"Setter function must be specified for parameter");
148 setter_(boost::lexical_cast<T>(value));
150 catch (boost::bad_lexical_cast &e)
153 logWarn(
"Invalid value format specified for parameter '%s': %s",
name_.c_str(), e.what());
159 logDebug(
"The value of parameter '%s' was set to: '%s'",
name_.c_str(), value.c_str());
168 return boost::lexical_cast<std::string>(
getter_());
170 catch (boost::bad_lexical_cast &e)
172 logWarn(
"Unable to parameter '%s' to string: %s",
name_.c_str(), e.what());
202 void add(
const GenericParamPtr ¶m);
205 void remove(
const std::string &name);
223 bool setParam(
const std::string &key,
const std::string &value);
226 bool getParam(
const std::string &key, std::string &value)
const;
233 bool setParams(
const std::map<std::string, std::string> &kv,
bool ignoreUnknown =
false);
236 void getParams(std::map<std::string, std::string> ¶ms)
const;
245 const std::map<std::string, GenericParamPtr>&
getParams(
void)
const;
248 const GenericParamPtr&
getParam(
const std::string &key)
const;
251 bool hasParam(
const std::string &key)
const;
259 return params_.size();
266 void print(std::ostream &out)
const;
270 std::map<std::string, GenericParamPtr> params_;