1 /* 2 * Copyright (c) 2020 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 OHOS_CONVERT_UTILS_H 17 #define OHOS_CONVERT_UTILS_H 18 19 #include "bundle_info.h" 20 #include "cJSON.h" 21 22 namespace OHOS { 23 struct ConvertUtils { 24 static char *ConvertAbilityInfoToString(const AbilityInfo *abilityInfo); 25 static char *ConvertBundleInfoToString(const BundleInfo *bundleInfo); 26 static char *ConvertBundleInfosToString(BundleInfo **bundleInfo, uint32_t numOfBundleInfo); 27 static AbilityInfo *ConvertStringToAbilityInfo(const char *str, size_t buffSize); 28 static BundleInfo *ConvertStringToBundleInfo(const char *str, size_t buffSize); 29 static bool ConvertStringToBundleInfos(const char *strs, BundleInfo **bundleInfo, uint32_t numOfBundleInfo, 30 size_t buffSize); 31 static cJSON *GetJsonBundleInfo(const BundleInfo *bundleInfo); 32 static cJSON *GetJsonBundleInfos(BundleInfo **bundleInfo, uint32_t numOfBundleInfo); 33 static cJSON *GetJsonModuleInfos(const ModuleInfo *moduleInfos, uint32_t numOfModule); 34 static cJSON *GetJsonModuleInfoMetaData(const ModuleInfo *moduleInfos, uint32_t index); 35 static cJSON *GetJsonModuleInfoDeviceType(const ModuleInfo *moduleInfos, uint32_t index); 36 static cJSON *GetJsonAbilityInfos(const AbilityInfo *abilityInfos, uint32_t numOfAbility); 37 static cJSON *GetJsonAbilityInfo(const AbilityInfo *abilityInfo); 38 static bool ConvertJsonToBundleInfo(const cJSON *root, BundleInfo *bundleInfo); 39 static bool ConvertJsonToMetaData(const cJSON *metaDataArray, MetaData **metaData); 40 static bool ConvertJsonToDeviceType(const cJSON *deviceTypeArray, char **deviceType); 41 static bool ConvertJsonToModuleInfos(const cJSON *moduleArray, ModuleInfo **moduleInfos, uint32_t numOfModule); 42 static bool ConvertJsonToAbilityInfo(const cJSON *root, AbilityInfo *abilityInfo); 43 static bool ConvertJsonToAbilityInfos(const cJSON *abilityArray, AbilityInfo **abilityInfos, uint32_t numOfAbility); 44 private: 45 ConvertUtils() = default; 46 ~ConvertUtils() = default; 47 static bool ConvertBundleInfoPartToJson(const BundleInfo *bundleInfo, cJSON *root); 48 static bool ConvertModuleInfosToJson(const BundleInfo *bundleInfo, cJSON *root); 49 static bool ConvertAbilityInfosToJson(const BundleInfo *bundleInfo, cJSON *root); 50 static bool ConvertModuleInfoMetaDataToJson(const ModuleInfo *moduleInfos, uint32_t index, cJSON *item); 51 static bool ConvertModuleInfoDeviceTypeToJson(const ModuleInfo *moduleInfos, uint32_t index, cJSON *item); 52 }; // ConvertUtils 53 } // OHOS 54 #endif // OHOS_CONVERT_UTILS_H