Merge branch 'devel/tizen_3.0' into tizen
[platform/core/context/context-provider.git] / src / battery-stats / BatteryMonitor.h
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef _CONTEXT_BATTERY_MONITOR_H_
18 #define _CONTEXT_BATTERY_MONITOR_H_
19
20 #include <device/callback.h>
21 #include <device/battery.h>
22 #include <DatabaseManager.h>
23 #include "BatteryUsageAnalyzer.h"
24
25 namespace ctx {
26
27         class BatteryMonitor {
28         public:
29                 BatteryMonitor();
30                 ~BatteryMonitor();
31
32                 int start();
33                 int stop();
34
35                 static int getLastResetTime();
36                 bool processBatteryUsage();
37
38         private:
39                 void __initialize();
40                 bool __loadLastInfo();
41                 bool __updateLastInfo();
42
43                 static void __batteryChangeCb(device_callback_e type, void* value, void* userData);
44                 static void __chargerChangeCb(device_callback_e type, void* value, void* userData);
45
46                 bool __insertUsageLog(std::vector<Json>& usage);
47
48                 DatabaseManager __dbMgr;
49                 BatteryUsageAnalyzer __analyzer;
50
51         };
52
53 }       /* namespace ctx */
54
55 #endif  /* _CONTEXT_BATTERY_MONITOR_H_ */