rcpputils  master
C++ API providing common utilities and data structures.
get_env.hpp
Go to the documentation of this file.
1 // Copyright (c) 2020, Open Source Robotics Foundation, Inc.
2 // All rights reserved.
3 //
4 // Software License Agreement (BSD License 2.0)
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions
8 // are met:
9 //
10 // * Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 // * Redistributions in binary form must reproduce the above
13 // copyright notice, this list of conditions and the following
14 // disclaimer in the documentation and/or other materials provided
15 // with the distribution.
16 // * Neither the name of the copyright holders nor the names of its
17 // contributors may be used to endorse or promote products derived
18 // from this software without specific prior written permission.
19 //
20 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 // POSSIBILITY OF SUCH DAMAGE.
32 
33 #ifndef RCPPUTILS__GET_ENV_HPP_
34 #define RCPPUTILS__GET_ENV_HPP_
35 
36 #include "rcutils/get_env.h"
37 
38 #include <stdexcept>
39 #include <string>
40 
42 
43 namespace rcpputils
44 {
45 
47 /*
48  * \param[in] env_var the name of the environment variable
49  * \return The value of the environment variable if it exists, or "".
50  * \throws std::runtime_error on error
51  */
52 std::string get_env_var(const char * env_var)
53 {
54  const char * value{};
55  const char * err = rcutils_get_env(env_var, &value);
56  if (err) {
57  throw std::runtime_error(err);
58  }
59  return value ? value : "";
60 }
61 
62 } // namespace rcpputils
63 
64 #endif // RCPPUTILS__GET_ENV_HPP_
std::string
rcpputils
Definition: asserts.hpp:37
std::runtime_error
visibility_control.hpp
Macros for controlling visibilty of exported iterfaces.
rcpputils::get_env_var
std::string get_env_var(const char *env_var)
Retrieve the value of the given environment variable if it exists, or "".
Definition: get_env.hpp:52