RSC  0.12.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Environment.h
Go to the documentation of this file.
1 /* ============================================================
2  *
3  * This file is part of the RSC project
4  *
5  * Copyright (C) 2011, 2012, 2013 Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
6  *
7  * This file may be licensed under the terms of the
8  * GNU Lesser General Public License Version 3 (the ``LGPL''),
9  * or (at your option) any later version.
10  *
11  * Software distributed under the License is distributed
12  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
13  * express or implied. See the LGPL for the specific language
14  * governing rights and limitations.
15  *
16  * You should have received a copy of the LGPL along with this
17  * program. If not, go to http://www.gnu.org/licenses/lgpl.html
18  * or write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  * The development of this software was supported by:
22  * CoR-Lab, Research Institute for Cognition and Robotics
23  * Bielefeld University
24  *
25  * ============================================================ */
26 
27 #pragma once
28 
29 #include <string>
30 
31 #include <boost/filesystem/path.hpp>
32 
33 #include <rsc/logging/Logger.h>
34 
35 #include "ConfigSource.h"
36 
37 #include "rsc/config.h"
38 #include "rsc/rscexports.h"
39 
40 
41 namespace rsc {
42 namespace config {
43 
53 RSC_EXPORT boost::filesystem::path systemConfigDirectory();
54 
65 RSC_EXPORT boost::filesystem::path prefixConfigDirectory(
66  const boost::filesystem::path& prefix = RSC_INSTALL_PREFIX);
67 
78 RSC_EXPORT boost::filesystem::path userHomeDirectory();
79 
90 RSC_EXPORT boost::filesystem::path userConfigDirectory();
91 
92 
102 class RSC_EXPORT EnvironmentVariableSource : public ConfigSource {
103 public:
116  EnvironmentVariableSource(const std::string& prefix = "",
117  const bool& stripPrefix = true);
118 
119  void provideOptions(OptionHandler& handler);
120 private:
122 
123  const std::string prefix;
125 };
126 
127 }
128 }
path userConfigDirectory()
Return the canonical directory for configuration files of the user associated with the current proces...
Objects of this class analyze the environment of the current process, finding environment variables w...
Definition: Environment.h:102
Implementations of this interface receive options from ConfigSource objects.
Definition: OptionHandler.h:43
path systemConfigDirectory()
Return the directory in which system-wide configuration files are located.
Definition: Environment.cpp:56
path prefixConfigDirectory(const path &prefix)
Definition: Environment.cpp:64
Implementations of this interface obtain configuration information somewhere and pass individual conf...
Definition: ConfigSource.h:42
rsc::logging::LoggerPtr logger
Definition: Environment.h:121
path userHomeDirectory()
Return the home directory of the user associated with the current process.
Definition: Environment.cpp:79
void handler(int signal)
boost::shared_ptr< Logger > LoggerPtr
Definition: Logger.h:41