2 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
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.
17 #include "BatteryUsage.h"
19 #define SECONDS_IN_A_DAY 86400
23 BatteryUsageProvider::BatteryUsageProvider() :
24 BatteryStatsProvider(SUBJ_BATTERY_USAGE)
28 BatteryUsageProvider::~BatteryUsageProvider()
32 int BatteryUsageProvider::read(Json option, Json *requestResult)
36 int timeSpan = DEFAULT_TIME_SPAN;
39 option.get(NULL, KEY_TIME_SPAN, &timeSpan);
40 timeSpanPoint = CURRENT_TIME - timeSpan * SECONDS_IN_A_DAY;
42 if (!option.get(NULL, KEY_START_TIME, &startTime)) {
43 startTime = timeSpanPoint;
46 if (!option.get(NULL, KEY_END_TIME, &endTime)) {
47 endTime = CURRENT_TIME;
51 bool hasLimit = option.get(NULL, KEY_RESULT_SIZE, &resultSize);
53 BatteryStatsQuerier *querier = getQuerier(option);
54 IF_FAIL_RETURN(querier, ERR_OPERATION_FAILED);
58 error = querier->query((startTime > timeSpanPoint)? startTime : timeSpanPoint, endTime, resultSize);
60 error = querier->query((startTime > timeSpanPoint)? startTime : timeSpanPoint, endTime);
62 IF_FAIL_RETURN_TAG(error == ERR_NONE, ERR_OPERATION_FAILED, _E, "Failed to get app battery usage");