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