2 * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #ifndef __BM_SERVER_DB_H__
19 #define __BM_SERVER_DB_H__
23 #include <tzplatform_config.h>
27 #include "bm_private.h"
34 BM_RESOURCE_ID_BLE ==> rId_ble,
37 BM_RESOURCE_ID_DISPLAY,
38 BM_RESOURCE_ID_DEVICE_NETWORK,
39 BM_RESOURCE_ID_GPS_SENSOR,
40 BM_RESOURCE_ID_BATTERY,
43 /* Battery Monitor AppId Vs Integer Map */
44 #define APP_ID_MAP_SCHEMA "create table appid_map \n"\
46 "id INTEGER PRIMARY KEY AUTOINCREMENT, "\
50 /* Battery Monitor APPID Vs RESOURCE ID */
51 #define APP_ID_USAGE_SCHEMA "create table appid_usage \n"\
59 "rId_device_network INT, "\
64 /* Battery Monitor RESOURCE ID Vs TIME */
65 #define RESOURCE_ID_USAGE_SCHEMA "create table resourceid_usage \n"\
72 #define RES_ID_BASE_USAGE_SCHEMA "create table res_base_usage \n"\
79 #define GBL_BLE_STAT_SCHEMA "create table gble_stat \n"\
82 "ble_idle_time INT, "\
88 #define GBL_WFL_STAT_SCHEMA "create table gwfl_stat \n"\
92 "wifi_conn_time INT, "\
93 "wifi_idle_time INT, "\
99 #define GBL_NT_STAT_SCHEMA "create table gn_stat \n"\
114 #define GBL_BR_STAT_SCHEMA "create table gbr_stat \n"\
124 #define GBL_SGT_STAT_SCHEMA "create table gsgt_stat \n"\
135 #define GBL_WST_STAT_SCHEMA "create table gwst_stat \n"\
146 #define GBL_BST_STAT_SCHEMA "create table gbst_stat \n"\
155 #define GBL_CPU_STAT_SCHEMA "create table gcpu_stat \n"\
164 /* Macros of Time Duration */
165 #define BM_DURATION_1DAY 86400 /*One Day in Seconds*/
166 #define BM_DURATION_1WEEK 604800 /*One Week(7 Days) in Seconds*/
168 /* #define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER) */
170 #define BATTERY_MONITOR_APP_ID_MAP_TABLE "appid_map"
171 #define BATTERY_MONITOR_APP_ID_USAGE_TABLE "appid_usage"
172 #define BATTERY_MONITOR_RESOURCE_ID_USAGE_TABLE "resourceid_usage"
173 #define BATTERY_MONITOR_RES_ID_BASE_USAGE_TABLE "res_base_usage"
174 #define BATTERY_MONITOR_GBL_BLE_STAT_TABLE "gble_stat"
175 #define BATTERY_MONITOR_GBL_WFL_STAT_TABLE "gwfl_stat"
176 #define BATTERY_MONITOR_GBL_NT_STAT_TABLE "gn_stat"
177 #define BATTERY_MONITOR_GBL_BR_STAT_TABLE "gbr_stat"
178 #define BATTERY_MONITOR_GBL_SGT_STAT_TABLE "gsgt_stat"
179 #define BATTERY_MONITOR_GBL_WST_STAT_TABLE "gwst_stat"
180 #define BATTERY_MONITOR_GBL_BST_STAT_TABLE "gbst_stat"
181 #define BATTERY_MONITOR_GBL_CPU_STAT_TABLE "gcpu_stat"
182 #define BATTERY_MONITOR_SQLITE_SEQ "sqlite_sequence"
183 #define BATTERY_MONITOR_SQL_LEN_MAX 1024
184 #define BATTERY_MONITOR_TABLE_COUNT 12
186 typedef sqlite3_stmt *bm_stmt;
188 /* Server Functions */
189 int initialize_database(void);
191 int deinitialize_database(void);
193 appid_usage_s *bm_server_query_app_usage_by_appid_ci(const char *app_id, long long s_time, long long e_time, int *error_code);
195 int bm_server_app_usage_insert_to_db(appid_usage_s *bm_app_type);
197 resourceid_usage_s *bm_server_query_resource_usage_resourceid_ci(const char *resource_id, long long s_time, long long e_time, int *error_code);
199 resourceid_usage_s *bm_server_query_resource_base_usage_resourceid_ci(const char *resource_id, long long s_time, long long e_time, int *error_code);
201 resourceid_usage_s *bm_server_query_battery_last_charge(const char *resource_id, int *error_code);
203 int bm_server_resource_usage_insert_to_db(resourceid_usage_s *bm_resource_type);
205 int bm_server_resource_base_usage_insert_to_db(resourceid_usage_s *bm_resource_type);
207 int bm_server_battery_dump_insert_to_db(void* str_data, int type);
209 int bm_server_battery_dump_query_from_db(void *str_data, int type, long int duration);
211 int bm_server_delete_table_by_appid(const char* app_id);
213 int bm_server_delete_table_by_time_interval(void);
215 int bm_server_appid_insert_to_db(const char* app_id);
217 GSList* bm_server_query_appid_map(int *error_code);
223 #endif /* __BM_SERVER_DB_H__ */