1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef BASE_ENVIRONMENT_H_
6 #define BASE_ENVIRONMENT_H_
11 #include "base/base_export.h"
12 #include "build/build_config.h"
19 BASE_EXPORT
extern const char kHome
[];
22 } // namespace env_vars
24 class BASE_EXPORT Environment
{
26 virtual ~Environment();
28 // Static factory method that returns the implementation that provide the
29 // appropriate platform-specific instance.
30 static Environment
* Create();
32 // Gets an environment variable's value and stores it in |result|.
33 // Returns false if the key is unset.
34 virtual bool GetVar(const char* variable_name
, std::string
* result
) = 0;
36 // Syntactic sugar for GetVar(variable_name, NULL);
37 virtual bool HasVar(const char* variable_name
);
39 // Returns true on success, otherwise returns false.
40 virtual bool SetVar(const char* variable_name
,
41 const std::string
& new_value
) = 0;
43 // Returns true on success, otherwise returns false.
44 virtual bool UnSetVar(const char* variable_name
) = 0;
49 #endif // BASE_ENVIRONMENT_H_