1*11be35a1SLionel Sambuc // 2*11be35a1SLionel Sambuc // Automated Testing Framework (atf) 3*11be35a1SLionel Sambuc // 4*11be35a1SLionel Sambuc // Copyright (c) 2007 The NetBSD Foundation, Inc. 5*11be35a1SLionel Sambuc // All rights reserved. 6*11be35a1SLionel Sambuc // 7*11be35a1SLionel Sambuc // Redistribution and use in source and binary forms, with or without 8*11be35a1SLionel Sambuc // modification, are permitted provided that the following conditions 9*11be35a1SLionel Sambuc // are met: 10*11be35a1SLionel Sambuc // 1. Redistributions of source code must retain the above copyright 11*11be35a1SLionel Sambuc // notice, this list of conditions and the following disclaimer. 12*11be35a1SLionel Sambuc // 2. Redistributions in binary form must reproduce the above copyright 13*11be35a1SLionel Sambuc // notice, this list of conditions and the following disclaimer in the 14*11be35a1SLionel Sambuc // documentation and/or other materials provided with the distribution. 15*11be35a1SLionel Sambuc // 16*11be35a1SLionel Sambuc // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17*11be35a1SLionel Sambuc // CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18*11be35a1SLionel Sambuc // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19*11be35a1SLionel Sambuc // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20*11be35a1SLionel Sambuc // IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21*11be35a1SLionel Sambuc // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22*11be35a1SLionel Sambuc // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23*11be35a1SLionel Sambuc // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*11be35a1SLionel Sambuc // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25*11be35a1SLionel Sambuc // IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26*11be35a1SLionel Sambuc // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27*11be35a1SLionel Sambuc // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28*11be35a1SLionel Sambuc // 29*11be35a1SLionel Sambuc 30*11be35a1SLionel Sambuc #if !defined(_ATF_CXX_CONFIG_HPP_) 31*11be35a1SLionel Sambuc #define _ATF_CXX_CONFIG_HPP_ 32*11be35a1SLionel Sambuc 33*11be35a1SLionel Sambuc #include <map> 34*11be35a1SLionel Sambuc #include <string> 35*11be35a1SLionel Sambuc 36*11be35a1SLionel Sambuc namespace atf { 37*11be35a1SLionel Sambuc 38*11be35a1SLionel Sambuc namespace config { 39*11be35a1SLionel Sambuc 40*11be35a1SLionel Sambuc //! 41*11be35a1SLionel Sambuc //! \brief Gets a build-time configuration variable's value. 42*11be35a1SLionel Sambuc //! 43*11be35a1SLionel Sambuc //! Given the name of a build-time configuration variable, returns its 44*11be35a1SLionel Sambuc //! textual value. The user is free to override these by setting their 45*11be35a1SLionel Sambuc //! corresponding environment variables. Therefore always use this 46*11be35a1SLionel Sambuc //! interface to get the value of these variables. 47*11be35a1SLionel Sambuc //! 48*11be35a1SLionel Sambuc //! \pre The variable must exist. 49*11be35a1SLionel Sambuc //! 50*11be35a1SLionel Sambuc const std::string& get(const std::string&); 51*11be35a1SLionel Sambuc 52*11be35a1SLionel Sambuc //! 53*11be35a1SLionel Sambuc //! \brief Returns all the build-time configuration variables. 54*11be35a1SLionel Sambuc //! 55*11be35a1SLionel Sambuc //! Returns a name to value map containing all build-time configuration 56*11be35a1SLionel Sambuc //! variables. 57*11be35a1SLionel Sambuc //! 58*11be35a1SLionel Sambuc const std::map< std::string, std::string >& get_all(void); 59*11be35a1SLionel Sambuc 60*11be35a1SLionel Sambuc //! 61*11be35a1SLionel Sambuc //! \brief Checks whether a build-time configuration variable exists. 62*11be35a1SLionel Sambuc //! 63*11be35a1SLionel Sambuc //! Given the name of a build-time configuration variable, checks 64*11be35a1SLionel Sambuc //! whether it is defined and returns a boolean indicating this 65*11be35a1SLionel Sambuc //! condition. The program only has to use this function to sanity-check 66*11be35a1SLionel Sambuc //! a variable name provided by the user. Otherwise it can assume that 67*11be35a1SLionel Sambuc //! the variables are defined. 68*11be35a1SLionel Sambuc //! 69*11be35a1SLionel Sambuc bool has(const std::string&); 70*11be35a1SLionel Sambuc 71*11be35a1SLionel Sambuc } // namespace config 72*11be35a1SLionel Sambuc 73*11be35a1SLionel Sambuc } // namespace atf 74*11be35a1SLionel Sambuc 75*11be35a1SLionel Sambuc #endif // !defined(_ATF_CXX_CONFIG_HPP_) 76