Leosac  0.7.0
OpenSourceAccessControl
ConfigChecker.hpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2014-2016 Leosac
3 
4  This file is part of Leosac.
5 
6  Leosac is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Affero General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  Leosac is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Affero General Public License for more details.
15 
16  You should have received a copy of the GNU Affero General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #pragma once
21 
22 #include <map>
23 #include <mutex>
24 
25 namespace Leosac
26 {
46 {
47  public:
48  enum class ObjectType
49  {
50  GPIO = 0,
51  LED = 1,
52  READER = 2,
53  BUZZER = 3
54  };
55 
59  void register_object(const std::string &name, const ObjectType &type);
60 
65  bool has_object(const std::string &name) const;
66 
71  bool has_object(const std::string &name, const ObjectType &type) const;
72 
77  void clear();
78 
79  private:
80  std::map<std::string, ObjectType> objects_;
81  mutable std::mutex mutex_;
82 };
83 }
std::map< std::string, ObjectType > objects_
This is the header file for a generated source file, GitSHA1.cpp.
bool has_object(const std::string &name) const
Check whether or not an object with name name is declared in the registry, no matter its type...
This class is here to help check the validity of the configuration.
void register_object(const std::string &name, const ObjectType &type)
Declare an object on the registry.
void clear()
Clear all informations.