AnCH Framework 0.1
Another C++ Hack Framework
 
Loading...
Searching...
No Matches
resource.hpp
1/*
2 ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3 Copyright (C) 2012 Vincent Lachenal
4
5 This file is part of ANCH Framework.
6
7 ANCH Framework is free software: you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 ANCH Framework is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19*/
20#pragma once
21
22#include <map>
23#include <mutex>
24#include <optional>
25
26#include "resource/section.hpp"
27
28namespace anch::resource {
29
35 class Resource {
36 private:
37 // Attributes +
39 static std::map<std::string,Resource> RESOURCES;
40
42 static std::mutex MUTEX;
43
45 std::map<std::string,anch::resource::Section> _resources;
46 // Attributes -
47
48 private:
49 // Constructors +
53 Resource();
54 // Constructors -
55
56 public:
57 // Destructor +
61 virtual ~Resource();
62 // Destructor -
63
64 public:
72 static const Resource& getResource(const std::string& filePath);
73
83 bool getParameter(std::string& value,
84 const std::string& param,
85 const std::string& section = "") const;
86
94 std::optional<anch::resource::Section> section(const std::string& section) const;
95
103 std::optional<std::string> parameter(const std::string& param) const;
104
110 const std::map<std::string,anch::resource::Section>& getConfiguration() const;
111
112 };
113
114}
115
116#include "resource/impl/resource.hpp"
bool getParameter(std::string &value, const std::string &param, const std::string &section="") const
std::optional< anch::resource::Section > section(const std::string &section) const
static const Resource & getResource(const std::string &filePath)
const std::map< std::string, anch::resource::Section > & getConfiguration() const
std::optional< std::string > parameter(const std::string &param) const
Resources namespace.
Definition configurationFileParser.hpp:28