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, int& i);
00274 ROSCPP_DECL bool getCached(const std::string& key, bool& b);
00288 ROSCPP_DECL bool getCached(const std::string& key, XmlRpc::XmlRpcValue& v);
00289 
00298 ROSCPP_DECL bool get(const std::string& key, std::vector<std::string>& vec);
00307 ROSCPP_DECL bool get(const std::string& key, std::vector<double>& vec);
00316 ROSCPP_DECL bool get(const std::string& key, std::vector<float>& vec);
00325 ROSCPP_DECL bool get(const std::string& key, std::vector<int>& vec);
00334 ROSCPP_DECL bool get(const std::string& key, std::vector<bool>& vec);
00335 
00349 ROSCPP_DECL bool getCached(const std::string& key, std::vector<std::string>& vec);
00363 ROSCPP_DECL bool getCached(const std::string& key, std::vector<double>& vec);
00377 ROSCPP_DECL bool getCached(const std::string& key, std::vector<float>& vec);
00391 ROSCPP_DECL bool getCached(const std::string& key, std::vector<int>& vec);
00405 ROSCPP_DECL bool getCached(const std::string& key, std::vector<bool>& vec);
00406 
00415 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, std::string>& map);
00424 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, double>& map);
00433 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, float>& map);
00442 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, int>& map);
00451 ROSCPP_DECL bool get(const std::string& key, std::map<std::string, bool>& map);
00452 
00466 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, std::string>& map);
00480 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, double>& map);
00494 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, float>& map);
00508 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, int>& map);
00522 ROSCPP_DECL bool getCached(const std::string& key, std::map<std::string, bool>& map);
00523 
00531 ROSCPP_DECL bool has(const std::string& key);
00539 ROSCPP_DECL bool del(const std::string& key);
00540 
00555 ROSCPP_DECL bool search(const std::string& ns, const std::string& key, std::string& result);
00556 
00571 ROSCPP_DECL bool search(const std::string& key, std::string& result);
00572 
00585 template<typename T>
00586 void param(const std::string& param_name, T& param_val, const T& default_val)
00587 {
00588   if (has(param_name))
00589   {
00590     if (get(param_name, param_val))
00591     {
00592       return;
00593     }
00594   }
00595 
00596   param_val = default_val;
00597 }
00598 
00599 } // namespace param
00600 
00601 } // namespace param
00602 
00603 #endif // ROSCPP_PARAM_H


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Mon Oct 6 2014 11:46:44