11ebd3d54Sopenharmony_ci/* 21ebd3d54Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 31ebd3d54Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41ebd3d54Sopenharmony_ci * you may not use this file except in compliance with the License. 51ebd3d54Sopenharmony_ci * You may obtain a copy of the License at 61ebd3d54Sopenharmony_ci * 71ebd3d54Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81ebd3d54Sopenharmony_ci * 91ebd3d54Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101ebd3d54Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111ebd3d54Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121ebd3d54Sopenharmony_ci * See the License for the specific language governing permissions and 131ebd3d54Sopenharmony_ci * limitations under the License. 141ebd3d54Sopenharmony_ci */ 151ebd3d54Sopenharmony_ci 161ebd3d54Sopenharmony_ci#ifndef FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_CONTINUOUS_TASK_COMMON_UTILS_H 171ebd3d54Sopenharmony_ci#define FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_CONTINUOUS_TASK_COMMON_UTILS_H 181ebd3d54Sopenharmony_ci 191ebd3d54Sopenharmony_ci#include <set> 201ebd3d54Sopenharmony_ci#include "nlohmann/json.hpp" 211ebd3d54Sopenharmony_ci 221ebd3d54Sopenharmony_cinamespace OHOS { 231ebd3d54Sopenharmony_cinamespace BackgroundTaskMgr { 241ebd3d54Sopenharmony_ciclass CommonUtils { 251ebd3d54Sopenharmony_cipublic: 261ebd3d54Sopenharmony_ci static bool CheckJsonValue(const nlohmann::json &value, std::initializer_list<std::string> params) 271ebd3d54Sopenharmony_ci { 281ebd3d54Sopenharmony_ci for (auto param : params) { 291ebd3d54Sopenharmony_ci if (value.find(param) == value.end()) { 301ebd3d54Sopenharmony_ci return false; 311ebd3d54Sopenharmony_ci } 321ebd3d54Sopenharmony_ci } 331ebd3d54Sopenharmony_ci return true; 341ebd3d54Sopenharmony_ci } 351ebd3d54Sopenharmony_ci 361ebd3d54Sopenharmony_ci static bool CheckExistMode(const std::vector<uint32_t> &bgModeIds, uint32_t bgMode) 371ebd3d54Sopenharmony_ci { 381ebd3d54Sopenharmony_ci auto iter = std::find(bgModeIds.begin(), bgModeIds.end(), bgMode); 391ebd3d54Sopenharmony_ci return iter != bgModeIds.end(); 401ebd3d54Sopenharmony_ci } 411ebd3d54Sopenharmony_ci 421ebd3d54Sopenharmony_ci static bool CheckModesSame(const std::vector<uint32_t> &oldBgModeIds, const std::vector<uint32_t> &newBgModeIds) 431ebd3d54Sopenharmony_ci { 441ebd3d54Sopenharmony_ci std::set<uint32_t> oldModesSet(oldBgModeIds.begin(), oldBgModeIds.end()); 451ebd3d54Sopenharmony_ci std::set<uint32_t> newModesSet(newBgModeIds.begin(), newBgModeIds.end()); 461ebd3d54Sopenharmony_ci return oldModesSet == newModesSet; 471ebd3d54Sopenharmony_ci } 481ebd3d54Sopenharmony_ci 491ebd3d54Sopenharmony_cipublic: 501ebd3d54Sopenharmony_ci static constexpr int32_t jsonFormat_ = 4; 511ebd3d54Sopenharmony_ci}; 521ebd3d54Sopenharmony_ci} // namespace BackgroundTaskMgr 531ebd3d54Sopenharmony_ci} // namespace OHOS 541ebd3d54Sopenharmony_ci#endif // FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_CONTINUOUS_TASK_COMMON_UTILS_H