param.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2009, Willow Garage, Inc.
00003  *
00004  * Redistribution and use in source and binary forms, with or without
00005  * modification, are permitted provided that the following conditions are met:
00006  *   * Redistributions of source code must retain the above copyright notice,
00007  *     this list of conditions and the following disclaimer.
00008  *   * Redistributions in binary form must reproduce the above copyright
00009  *     notice, this list of conditions and the following disclaimer in the
00010  *     documentation and/or other materials provided with the distribution.
00011  *   * Neither the names of Willow Garage, Inc. nor the names of its
00012  *     contributors may be used to endorse or promote products derived from
00013  *     this software without specific prior written permission.
00014  *
00015  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00016  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00017  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00018  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00019  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00020  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00021  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00022  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00023  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00024  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00025  * POSSIBILITY OF SUCH DAMAGE.
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 #include <vector>
00036 #include <map>
00037 
00038 namespace ros
00039 {
00040 
00044 namespace param
00045 {
00046 
00053 ROSCPP_DECL void set(const std::string& key, const XmlRpc::XmlRpcValue& v);
00060 ROSCPP_DECL void set(const std::string& key, const std::string& s);
00067 ROSCPP_DECL void set(const std::string& key, const char* s);
00074 ROSCPP_DECL void set(const std::string& key, double d);
00081 ROSCPP_DECL void set(const std::string& key, int i);
00088 ROSCPP_DECL void set(const std::string& key, bool b);
00089 
00090 
00097 ROSCPP_DECL void set(const std::string& key, const std::vector<std::string>& vec);
00104 ROSCPP_DECL void set(const std::string& key, const std::vector<double>& vec);
00111 ROSCPP_DECL void set(const std::string& key, const std::vector<float>& vec);
00118 ROSCPP_DECL void set(const std::string& key, const std::vector<int>& vec);
00125 ROSCPP_DECL void set(const std::string& key, const std::vector<bool>& vec);
00126 
00133 ROSCPP_DECL void set(const std::string& key, const std::map<std::string, std::string>& map);
00140 ROSCPP_DECL void set(const std::string& key, const std::map<std::string, double>& map);
00147 ROSCPP_DECL void set(const std::string& key, const std::map<std::string, float>& map);
00154 ROSCPP_DECL void set(const std::string& key, const std::map<std::string, int>& map);
00161 ROSCPP_DECL void set(const std::string& key, const std::map<std::string, bool>& map);
00162 
00163 
00172 ROSCPP_DECL bool get(const std::string& key, std::string& s);
00181 ROSCPP_DECL bool get(const std::string& key, double& d);
00190 ROSCPP_DECL bool get(const std::string& key, float& f);
00199 ROSCPP_DECL bool get(const std::string& key, int& i);
00208 ROSCPP_DECL bool get(const std::string& key, bool& b);
00217 ROSCPP_DECL bool get(const std::string& key, XmlRpc::XmlRpcValue& v);
00218 
00232 ROSCPP_DECL bool getCached(const std::string& key, std::string& s);
00246 ROSCPP_DECL bool getCached(const std::string& key, double& d);
00260 ROSCPP_DECL bool getCached(const std::string& key, float& f);
00274 ROSCPP_DECL bool getCached(const std::string& key, int& i);
00288 ROSCPP_DECL bool getCached(const std::string& key, bool& b);
00302 ROSCPP_DECL bool getCached(const std::string& key, XmlRpc::XmlRpcValue& v);
00303 
00312 ROSCPP_DECL bool get(const std::string& key, std::vector<std::string>& vec);
00321 ROSCPP_DECL bool get(const std::string& key, std::vector<double>& vec);
00330 ROSCPP_DECL bool get(const std::string& key, std::vector<float>& vec);
00339 ROSCPP_DECL bool get(const std::string& key, std::vector<int>& vec);
00348 ROSCPP_DECL bool get(const std::string& key, std::vector<bool>& vec);
00349 
00363 ROSCPP_DECL bool getCached(const std::string& key, std::vector<std::string>& vec);
00377 ROSCPP_DECL bool getCached(const std::string& key, std::vector<double>& vec);
00391 ROSCPP_DECL bool getCached(const std::string& key, std::vector<float>& vec);
00405 ROSCPP_DECL bool getCached(const std::string& key, std::vector<int>& vec);
00419 ROSCPP_DECL bool getCached(const std::string& key, std::vector<bool>& vec);
00420 
00429 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, std::string>& map);
00438 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, double>& map);
00447 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, float>& map);
00456 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, int>& map);
00465 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, bool>& map);
00466 
00480 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, std::string>& map);
00494 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, double>& map);
00508 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, float>& map);
00522 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, int>& map);
00536 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, bool>& map);
00537 
00545 ROSCPP_DECL bool has(const std::string& key);
00553 ROSCPP_DECL bool del(const std::string& key);
00554 
00569 ROSCPP_DECL bool search(const std::string& ns, const std::string& key, std::string& result);
00570 
00585 ROSCPP_DECL bool search(const std::string& key, std::string& result);
00586 
00592 ROSCPP_DECL bool getParamNames(std::vector<std::string>& keys);
00593 
00606 template<typename T>
00607 void param(const std::string& param_name, T& param_val, const T& default_val)
00608 {
00609   if (has(param_name))
00610   {
00611     if (get(param_name, param_val))
00612     {
00613       return;
00614     }
00615   }
00616 
00617   param_val = default_val;
00618 }
00619 
00637 template<typename T>
00638 T param(const std::string& param_name, const T& default_val)
00639 {
00640   T param_val;
00641   param(param_name, param_val, default_val);
00642   return param_val;
00643 }
00644 
00645 } // namespace param
00646 
00647 } // namespace ros
00648 
00649 #endif // ROSCPP_PARAM_H


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Thu Jun 6 2019 21:10:05