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 "XmlRpcValue.h"
00033
00034 namespace ros
00035 {
00036
00040 namespace param
00041 {
00042
00049 void set(const std::string& key, const XmlRpc::XmlRpcValue& v);
00056 void set(const std::string& key, const std::string& s);
00063 void set(const std::string& key, const char* s);
00070 void set(const std::string& key, double d);
00077 void set(const std::string& key, int i);
00084 void set(const std::string& key, bool b);
00085
00094 bool get(const std::string& key, std::string& s);
00103 bool get(const std::string& key, double& d);
00112 bool get(const std::string& key, int& i);
00121 bool get(const std::string& key, bool& b);
00130 bool get(const std::string& key, XmlRpc::XmlRpcValue& v);
00131
00145 bool getCached(const std::string& key, std::string& s);
00159 bool getCached(const std::string& key, double& d);
00173 bool getCached(const std::string& key, int& i);
00187 bool getCached(const std::string& key, bool& b);
00201 bool getCached(const std::string& key, XmlRpc::XmlRpcValue& v);
00202
00210 bool has(const std::string& key);
00218 bool del(const std::string& key);
00219
00234 bool search(const std::string& ns, const std::string& key, std::string& result);
00235
00250 bool search(const std::string& key, std::string& result);
00251
00264 template<typename T>
00265 void param(const std::string& param_name, T& param_val, const T& default_val)
00266 {
00267 if (has(param_name))
00268 {
00269 if (get(param_name, param_val))
00270 {
00271 return;
00272 }
00273 }
00274
00275 param_val = default_val;
00276 }
00277
00278 }
00279
00280 }
00281
00282 #endif // ROSCPP_PARAM_H