TYPE3
[iec.git] / src / type3_AndroidCloud / anbox-master / src / anbox / system_configuration.h
1 /*
2  * Copyright (C) 2016 Simon Fels <morphis@gravedo.de>
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3, as published
6  * by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranties of
10  * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11  * PURPOSE.  See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program.  If not, see <http://www.gnu.org/licenses/>.
15  *
16  */
17
18 #ifndef ANBOX_SYSTEM_CONFIGURATION_H_
19 #define ANBOX_SYSTEM_CONFIGURATION_H_
20
21 #include <string>
22 #include <memory>
23
24 #include <boost/filesystem.hpp>
25
26 namespace anbox {
27 class SystemConfiguration {
28  public:
29   static SystemConfiguration& instance();
30
31   virtual ~SystemConfiguration() = default;
32
33   void set_data_path(const std::string &path);
34
35   boost::filesystem::path data_dir() const;
36   std::string rootfs_dir() const;
37   std::string overlay_dir() const;
38   std::string combined_rootfs_dir() const;
39   std::string log_dir() const;
40   std::string socket_dir() const;
41   std::string container_config_dir() const;
42   std::string container_socket_path() const;
43   std::string container_devices_dir() const;
44   std::string container_state_dir() const;
45   std::string input_device_dir() const;
46   std::string application_item_dir() const;
47   std::string resource_dir() const;
48
49  protected:
50   SystemConfiguration();
51
52   boost::filesystem::path data_path;
53   boost::filesystem::path resource_path;
54 };
55 }  // namespace anbox
56
57 #endif // ANBOX_SYSTEM_CONFIGURATION_H_