1 /* 2 * Copyright (c) 2023 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_ABILITY_RUNTIME_CHILD_PROCESS_MANAGER_ERROR_UTILS_H 17 #define OHOS_ABILITY_RUNTIME_CHILD_PROCESS_MANAGER_ERROR_UTILS_H 18 19 #include <map> 20 21 #include "ability_business_error.h" 22 #include "ability_manager_errors.h" 23 24 namespace OHOS { 25 namespace AbilityRuntime { 26 enum class ChildProcessManagerErrorCode { 27 ERR_OK = 0, 28 ERR_MULTI_PROCESS_MODEL_DISABLED = 1, 29 ERR_ALREADY_IN_CHILD_PROCESS = 2, 30 ERR_GET_HAP_INFO_FAILED = 3, 31 ERR_FORK_FAILED = 4, 32 ERR_GET_BUNDLE_INFO_FAILED = 5, 33 ERR_GET_APP_MGR_FAILED = 6, 34 ERR_APP_MGR_FAILED_INNER = 7, 35 ERR_UNSUPPORT_NATIVE_CHILD_PROCESS = 8, 36 ERR_MAX_CHILD_PROCESSES = 9, 37 ERR_LIB_LOADING_FAILED = 10, 38 ERR_CONNECTION_FAILED = 11, 39 ERR_UNSUPPORTED_START_MODE = 12, 40 ERR_MULTI_PROCESS_MODEL_DISABLED_NEW = 13, 41 }; 42 43 const std::map<ChildProcessManagerErrorCode, AbilityErrorCode> INTERNAL_ERR_CODE_MAP = { 44 { ChildProcessManagerErrorCode::ERR_OK, AbilityErrorCode::ERROR_OK }, 45 { ChildProcessManagerErrorCode::ERR_MULTI_PROCESS_MODEL_DISABLED, 46 AbilityErrorCode::ERROR_CODE_OPERATION_NOT_SUPPORTED }, 47 { ChildProcessManagerErrorCode::ERR_ALREADY_IN_CHILD_PROCESS, 48 AbilityErrorCode::ERROR_CODE_OPERATION_NOT_SUPPORTED }, 49 { ChildProcessManagerErrorCode::ERR_GET_HAP_INFO_FAILED, AbilityErrorCode::ERROR_CODE_INNER }, 50 { ChildProcessManagerErrorCode::ERR_FORK_FAILED, AbilityErrorCode::ERROR_CODE_INNER }, 51 { ChildProcessManagerErrorCode::ERR_GET_BUNDLE_INFO_FAILED, AbilityErrorCode::ERROR_CODE_INNER }, 52 { ChildProcessManagerErrorCode::ERR_GET_APP_MGR_FAILED, AbilityErrorCode::ERROR_CODE_INNER }, 53 { ChildProcessManagerErrorCode::ERR_APP_MGR_FAILED_INNER, AbilityErrorCode::ERROR_CODE_INNER }, 54 { ChildProcessManagerErrorCode::ERR_UNSUPPORTED_START_MODE, AbilityErrorCode::ERROR_CODE_INVALID_PARAM }, 55 { ChildProcessManagerErrorCode::ERR_MULTI_PROCESS_MODEL_DISABLED_NEW, 56 AbilityErrorCode::ERROR_CODE_CAPABILITY_NOT_SUPPORT }, 57 { ChildProcessManagerErrorCode::ERR_MAX_CHILD_PROCESSES, 58 AbilityErrorCode::ERROR_CODE_CHILD_PROCESS_NUMBER_EXCEEDS_UPPER_BOUND }, 59 }; 60 61 const std::map<int32_t, ChildProcessManagerErrorCode> ABILITY_MANAGER_ERR_CODE_MAP = { 62 { AAFwk::ERR_NOT_SUPPORT_CHILD_PROCESS, ChildProcessManagerErrorCode::ERR_MULTI_PROCESS_MODEL_DISABLED_NEW }, 63 { AAFwk::ERR_NOT_SUPPORT_NATIVE_CHILD_PROCESS, ChildProcessManagerErrorCode::ERR_UNSUPPORT_NATIVE_CHILD_PROCESS }, 64 { AAFwk::ERR_ALREADY_IN_CHILD_PROCESS, ChildProcessManagerErrorCode::ERR_ALREADY_IN_CHILD_PROCESS }, 65 { AAFwk::ERR_CHILD_PROCESS_REACH_LIMIT, ChildProcessManagerErrorCode::ERR_MAX_CHILD_PROCESSES }, 66 { ERR_OVERFLOW, ChildProcessManagerErrorCode::ERR_MAX_CHILD_PROCESSES }, 67 }; 68 69 class ChildProcessManagerErrorUtil { 70 public: 71 static AbilityErrorCode GetAbilityErrorCode(const ChildProcessManagerErrorCode &internalErrCode); 72 static ChildProcessManagerErrorCode GetChildProcessManagerErrorCode(int32_t abilityManagerErrorCode); 73 }; 74 } // namespace AbilityRuntime 75 } // namespace OHOS 76 #endif // OHOS_ABILITY_RUNTIME_CHILD_PROCESS_MANAGER_ERROR_UTILS_H