1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_CONTINUOUS_TASK_COMMON_UTILS_H
17 #define FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_CONTINUOUS_TASK_COMMON_UTILS_H
18 
19 #include <set>
20 #include "nlohmann/json.hpp"
21 
22 namespace OHOS {
23 namespace BackgroundTaskMgr {
24 class CommonUtils {
25 public:
CheckJsonValue(const nlohmann::json & value,std::initializer_list<std::string> params)26     static bool CheckJsonValue(const nlohmann::json &value, std::initializer_list<std::string> params)
27     {
28         for (auto param : params) {
29             if (value.find(param) == value.end()) {
30                 return false;
31             }
32         }
33         return true;
34     }
35 
CheckExistMode(const std::vector<uint32_t> & bgModeIds,uint32_t bgMode)36     static bool CheckExistMode(const std::vector<uint32_t> &bgModeIds, uint32_t bgMode)
37     {
38         auto iter = std::find(bgModeIds.begin(), bgModeIds.end(), bgMode);
39         return iter != bgModeIds.end();
40     }
41 
CheckModesSame(const std::vector<uint32_t> & oldBgModeIds,const std::vector<uint32_t> & newBgModeIds)42     static bool CheckModesSame(const std::vector<uint32_t> &oldBgModeIds, const std::vector<uint32_t> &newBgModeIds)
43     {
44         std::set<uint32_t> oldModesSet(oldBgModeIds.begin(), oldBgModeIds.end());
45         std::set<uint32_t> newModesSet(newBgModeIds.begin(), newBgModeIds.end());
46         return oldModesSet == newModesSet;
47     }
48 
49 public:
50     static constexpr int32_t jsonFormat_ = 4;
51 };
52 }  // namespace BackgroundTaskMgr
53 }  // namespace OHOS
54 #endif  // FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_CONTINUOUS_TASK_COMMON_UTILS_H