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