Merge branch 'devel/tizen' into tizen
[platform/core/system/sensord.git] / src / server / server.h
1 /*
2  * sensord
3  *
4  * Copyright (c) 2017 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 __SERVER_H__
21 #define __SERVER_H__
22
23 #include <event_loop.h>
24 #include <ipc_server.h>
25 #include <sensor_manager.h>
26 #include <server_channel_handler.h>
27 #include <atomic>
28
29 namespace sensor {
30
31 class server {
32 public:
33         static void run(void);
34         static void stop(void);
35
36 private:
37         static server &instance(void);
38
39         static ipc::event_loop m_loop;
40         static std::atomic<bool> is_running;
41
42         server();
43
44         bool init(void);
45         void deinit(void);
46
47         void init_calibration(void);
48         void init_server(void);
49
50         ipc::ipc_server *m_server;
51         sensor_manager *m_manager;
52         server_channel_handler *m_handler;
53 };
54
55 }
56
57 #endif /* __SERVER_H__ */