1// Copyright (c) 2007 The NetBSD Foundation, Inc. 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions 6// are met: 7// 1. Redistributions of source code must retain the above copyright 8// notice, this list of conditions and the following disclaimer. 9// 2. Redistributions in binary form must reproduce the above copyright 10// notice, this list of conditions and the following disclaimer in the 11// documentation and/or other materials provided with the distribution. 12// 13// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 14// CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 15// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17// IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 18// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 20// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 22// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 24// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 26#if !defined(ATF_CXX_DETAIL_ENV_HPP) 27#define ATF_CXX_DETAIL_ENV_HPP 28 29#include <string> 30 31namespace atf { 32namespace env { 33 34// ------------------------------------------------------------------------ 35// Free functions. 36// ------------------------------------------------------------------------ 37 38//! 39//! \brief Returns the value of an environment variable. 40//! 41//! Returns the value of the specified environment variable. The variable 42//! must be defined. 43//! 44std::string get(const std::string&); 45 46//! 47//! \brief Returns the value of an environment variable with a default. 48//! 49std::string get(const std::string&, const std::string&); 50 51//! 52//! \brief Checks if the environment has a variable. 53//! 54//! Checks if the environment has a given variable. 55//! 56bool has(const std::string&); 57 58//! 59//! \brief Sets an environment variable to a given value. 60//! 61//! Sets the specified environment variable to the given value. Note that 62//! variables set to the empty string are different to undefined ones. 63//! 64//! Be aware that this alters the program's global status, which in general 65//! is a bad thing to do due to the side-effects it may have. There are 66//! some legitimate usages for this function, though. 67//! 68void set(const std::string&, const std::string&); 69 70//! 71//! \brief Unsets an environment variable. 72//! 73//! Unsets the specified environment variable Note that undefined 74//! variables are different to those defined but set to an empty value. 75//! 76//! Be aware that this alters the program's global status, which in general 77//! is a bad thing to do due to the side-effects it may have. There are 78//! some legitimate usages for this function, though. 79//! 80void unset(const std::string&); 81 82} // namespace env 83} // namespace atf 84 85#endif // !defined(ATF_CXX_DETAIL_ENV_HPP) 86