sensord: fix incorrect return type
[platform/core/system/sensord.git] / src / server / permission_checker.h
1 /*
2  * sensord
3  *
4  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #ifndef _PERMISSION_CHECKER_H_
21 #define _PERMISSION_CHECKER_H_
22
23 #include <cmutex.h>
24 #include <string>
25 #include <vector>
26 #include <memory>
27
28 class permission_checker {
29 public:
30         static permission_checker& get_instance(void);
31
32         int get_permission(int sock_fd);
33
34 private:
35         class permission_info {
36                 public:
37                 permission_info(int _permission, std::string _priv, std::string _access)
38                 : permission(_permission)
39                 , privilege(_priv)
40                 , access(_access)
41                 {
42                 }
43                 int permission;
44                 std::string privilege;
45                 std::string access;
46         };
47
48         typedef std::vector<std::shared_ptr<permission_info>> permission_info_vector;
49
50         permission_checker();
51         permission_checker(permission_checker const&) {};
52         permission_checker& operator=(permission_checker const&);
53
54         ~permission_checker();
55
56         void init(void);
57
58 private:
59         permission_info_vector m_permission_infos;
60         int m_permission_set;
61         cmutex m_mutex;
62
63 private:
64         void init_cynara(void);
65         void deinit_cynara(void);
66 };
67
68 #endif /* _PERMISSION_CHECKER_H_ */