00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROSCPP_PARAM_H
00029 #define ROSCPP_PARAM_H
00030
00031 #include "forwards.h"
00032 #include "common.h"
00033 #include "XmlRpcValue.h"
00034
00035 namespace ros
00036 {
00037
00041 namespace param
00042 {
00043
00050 ROSCPP_DECL void set(const std::string& key, const XmlRpc::XmlRpcValue& v);
00057 ROSCPP_DECL void set(const std::string& key, const std::string& s);
00064 ROSCPP_DECL void set(const std::string& key, const char* s);
00071 ROSCPP_DECL void set(const std::string& key, double d);
00078 ROSCPP_DECL void set(const std::string& key, int i);
00085 ROSCPP_DECL void set(const std::string& key, bool b);
00086
00095 ROSCPP_DECL bool get(const std::string& key, std::string& s);
00104 ROSCPP_DECL bool get(const std::string& key, double& d);
00113 ROSCPP_DECL bool get(const std::string& key, int& i);
00122 ROSCPP_DECL bool get(const std::string& key, bool& b);
00131 ROSCPP_DECL bool get(const std::string& key, XmlRpc::XmlRpcValue& v);
00132
00146 ROSCPP_DECL bool getCached(const std::string& key, std::string& s);
00160 ROSCPP_DECL bool getCached(const std::string& key, double& d);
00174 ROSCPP_DECL bool getCached(const std::string& key, int& i);
00188 ROSCPP_DECL bool getCached(const std::string& key, bool& b);
00202 ROSCPP_DECL bool getCached(const std::string& key, XmlRpc::XmlRpcValue& v);
00203
00211 ROSCPP_DECL bool has(const std::string& key);
00219 ROSCPP_DECL bool del(const std::string& key);
00220
00235 ROSCPP_DECL bool search(const std::string& ns, const std::string& key, std::string& result);
00236
00251 ROSCPP_DECL bool search(const std::string& key, std::string& result);
00252
00265 template<typename T>
00266 void param(const std::string& param_name, T& param_val, const T& default_val)
00267 {
00268 if (has(param_name))
00269 {
00270 if (get(param_name, param_val))
00271 {
00272 return;
00273 }
00274 }
00275
00276 param_val = default_val;
00277 }
00278
00279 }
00280
00281 }
00282
00283 #endif // ROSCPP_PARAM_H