1 /* 2 * Copyright (c) 2022-2025 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_FILEMGMT_DFS_ERROR_H 17 #define OHOS_FILEMGMT_DFS_ERROR_H 18 19 #include <string_view> 20 #include <sys/types.h> 21 #include <unordered_map> 22 23 #include "errors.h" 24 25 namespace OHOS::FileManagement { 26 constexpr int STORAGE_SERVICE_SYS_CAP_TAG = 13600000; 27 constexpr int FILEIO_SYS_CAP_TAG = 13900000; 28 constexpr int USER_FILE_MANAGER_SYS_CAP_TAG = 14000000; 29 constexpr int DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG = 22400000; 30 constexpr int SOFTBUS_TRANS_FILE_PERMISSION_DENIED = -426114938; 31 constexpr int SOFTBUS_TRANS_FILE_DISK_QUOTA_EXCEEDED = -426114937; 32 constexpr int SOFTBUS_TRANS_FILE_NO_MEMORY = -426114936; 33 constexpr int SOFTBUS_TRANS_FILE_NETWORK_ERROR = -426114935; 34 constexpr int SOFTBUS_TRANS_FILE_NOT_FOUND = -426114934; 35 constexpr int SOFTBUS_TRANS_FILE_EXISTED = -426114933; 36 constexpr int DFS_CANCEL_SUCCESS = 204; 37 38 enum CloudSyncServiceErrCode : ErrCode { 39 E_OK = 0, 40 E_SEVICE_DIED, 41 E_INVAL_ARG, 42 E_BROKEN_IPC, 43 E_SA_LOAD_FAILED, 44 E_SERVICE_DESCRIPTOR_IS_EMPTY, 45 E_PERMISSION_DENIED, 46 E_PERMISSION_SYSTEM, 47 E_GET_PHYSICAL_PATH_FAILED, 48 E_GET_TOKEN_INFO_ERROR, 49 E_SYNCER_NUM_OUT_OF_RANGE, 50 E_SYNC_FAILED_BATTERY_LOW, 51 E_SYNC_FAILED_BATTERY_TOO_LOW, 52 E_SYNC_FAILED_NETWORK_NOT_AVAILABLE, 53 E_GET_NETWORK_MANAGER_FAILED, 54 E_DELETE_FAILED, 55 E_NO_SUCH_FILE, 56 E_RENAME_FAIL, 57 E_SYSTEM_LOAD_OVER, 58 E_EXCEED_MAX_SIZE, 59 E_ILLEGAL_URI, 60 61 /* data syncer */ 62 E_CLOUD_SDK = 21, 63 E_RDB = 22, 64 E_CONTEXT = 23, 65 E_STOP = 24, 66 E_PENDING = 25, 67 E_SCHEDULE = 26, 68 E_ASYNC_RUN = 27, 69 E_PATH = 28, 70 E_DATA = 29, 71 E_NOTIFY = 30, 72 E_UNKNOWN = 31, 73 E_CLOUD_STORAGE_FULL = 32, 74 E_LOCAL_STORAGE_FULL = 33, 75 E_BUSINESS_MODE_CHANGED = 34, 76 E_OSACCOUNT = 35, 77 E_USER_LOCKED = 36, 78 E_GET_SIZE_ERROR = 37, 79 80 E_IPC_READ_FAILED, 81 E_IPC_WRITE_FAILED, 82 E_SOFTBUS_SESSION_FAILED, 83 E_GET_DEVICE_ID, 84 E_GET_USER_ID, 85 E_NULLPTR, 86 /* session */ 87 E_CREATE_SESSION, 88 E_OPEN_SESSION, 89 E_WAIT_SESSION_OPENED, 90 E_FILE_NOT_EXIST, 91 E_SEND_FILE, 92 E_MEMORY, 93 94 /* eventhandler */ 95 E_EVENT_HANDLER, 96 E_ZIP, 97 98 /* download timeout */ 99 E_TIMEOUT, 100 101 /* task running */ 102 E_TASK_RUNNING, 103 104 E_SERVICE_INNER_ERROR, 105 E_VERSION_FILE_NOT_EXIST, 106 107 /* dfs daemon */ 108 E_ALLOW_LOCAL_CALL_ONLY, 109 110 E_INNER_RDB, 111 112 E_RETRY, 113 114 E_SOURCE_BASIC = 10000, 115 116 E_THM_SOURCE_BASIC = E_SOURCE_BASIC + 1000, 117 E_THM_SIZE_IS_ZERO = E_THM_SOURCE_BASIC + 201, 118 E_THM_IS_TOO_LARGE = E_THM_SIZE_IS_ZERO + 1, 119 120 E_LCD_SOURCE_BASIC = E_SOURCE_BASIC + 2000, 121 E_LCD_SIZE_IS_ZERO = E_LCD_SOURCE_BASIC + 201, 122 E_LCD_IS_TOO_LARGE = E_LCD_SIZE_IS_ZERO + 1, 123 124 E_CONTENT_SOURCE_BASIC = E_SOURCE_BASIC + 3000, 125 E_CONTENT_SIZE_IS_ZERO = E_CONTENT_SOURCE_BASIC + 201, 126 E_CONTENT_COVERT_LIVE_PHOTO = E_CONTENT_SIZE_IS_ZERO + 1, 127 E_CONTENT_RAW_SIZE_IS_ZERO = E_CONTENT_COVERT_LIVE_PHOTO + 1, 128 129 E_FIELD_BASIC = 20000, 130 131 E_DB_FIELD_BASIC = E_FIELD_BASIC + 1000, 132 E_DB_SIZE_IS_ZERO = E_DB_FIELD_BASIC + 1, 133 E_DB_ALBUM_NOT_FOUND = E_DB_SIZE_IS_ZERO + 1, 134 E_DB_ALBUM_ID_IS_EMPTY = E_DB_ALBUM_NOT_FOUND + 1, 135 136 E_DK_FIELD_BASIC = E_FIELD_BASIC + 2000, 137 E_DK_NO_ATTRIBUTES = E_DK_FIELD_BASIC + 1, 138 }; 139 140 enum DFSErrCode { 141 ERR_OK = 0, 142 ERR_BAD_VALUE = -1, 143 144 ERR_APPLY_RESULT = 1, 145 ERR_DLOPEN, 146 ERR_PUBLISH_STATE, 147 ERR_ALLCONNECT, 148 ERR_CHECKOUT_COUNT, 149 150 ERR_NULLPTR, 151 152 /* dfs version */ 153 ERR_DFS_VERSION_BASE = 1000, 154 ERR_DFS_VERSION_EMPTY = ERR_DFS_VERSION_BASE + 1, 155 ERR_NO_FIND_PACKAGE_NAME = ERR_DFS_VERSION_BASE + 2, 156 ERR_DFS_VERSION_PARSE_EXCEPTION = ERR_DFS_VERSION_BASE + 3, 157 ERR_GET_UDID = ERR_DFS_VERSION_BASE + 4, 158 159 ERR_CREATE_SOCKET_FAILED = 2000, 160 ERR_LISTEN_SOCKET_FAILED, 161 ERR_BIND_SOCKET_FAILED, 162 ERR_SEND_DATA_BY_SOFTBUS_FAILED, 163 ERR_TIMEOUT, 164 ERR_CHECK_PERMISSION_FAILED, 165 ERR_NULL_EVENT_HANDLER, 166 ERR_POST_TASK_FAILED, 167 ERR_NO_EXIST_CHANNEL, 168 }; 169 170 static inline std::unordered_map<int, int> softbusErr2ErrCodeTable { 171 {SOFTBUS_TRANS_FILE_PERMISSION_DENIED, EPERM}, 172 {SOFTBUS_TRANS_FILE_DISK_QUOTA_EXCEEDED, EIO}, 173 {SOFTBUS_TRANS_FILE_NO_MEMORY, ENOMEM}, 174 {SOFTBUS_TRANS_FILE_NETWORK_ERROR, ENETUNREACH}, 175 {SOFTBUS_TRANS_FILE_NOT_FOUND, ENOENT}, 176 {SOFTBUS_TRANS_FILE_EXISTED, EEXIST}, 177 {DFS_CANCEL_SUCCESS, ECANCELED}, 178 }; 179 180 enum IPCErrCode { 181 E_DEAD_REPLY = 29189, 182 }; 183 184 enum JsErrCode { 185 E_PERMISSION = 201, 186 E_PERMISSION_SYS = 202, 187 E_DFS_CANCEL_SUCCESS = 204, 188 E_PARAMS_ = 401, 189 E_IPCSS = STORAGE_SERVICE_SYS_CAP_TAG + 1, 190 E_UNKNOWN_ERR = FILEIO_SYS_CAP_TAG + 42, 191 E_INVALID_URI = USER_FILE_MANAGER_SYS_CAP_TAG + 2, 192 E_CLOUD_NOT_READY = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 1, 193 E_NETWORK_ERR = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 2, 194 E_BATTERY_WARNING = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 3, 195 E_EXCEED_MAX_LIMIT = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 4, 196 E_INNER_FAILED = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 5, 197 E_OTHER_TASK_RUNNING = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 6, 198 E_VERSION_FILE_NO_EXIST = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 7 199 }; 200 201 const std::unordered_map<int32_t, int32_t> errCodeTable { 202 { E_PERMISSION_DENIED, E_PERMISSION }, 203 { E_PERMISSION_SYSTEM, E_PERMISSION_SYS }, 204 { E_INVAL_ARG, E_PARAMS_ }, 205 { E_BROKEN_IPC, E_IPCSS }, 206 { E_CLOUD_SDK, E_CLOUD_NOT_READY }, 207 { E_ILLEGAL_URI, E_INVALID_URI }, 208 { E_SYNC_FAILED_NETWORK_NOT_AVAILABLE, E_NETWORK_ERR }, 209 { E_SYNC_FAILED_BATTERY_TOO_LOW, E_BATTERY_WARNING }, 210 { E_EXCEED_MAX_SIZE, E_EXCEED_MAX_LIMIT }, 211 { E_RDB, E_IPCSS }, 212 { E_DEAD_REPLY, E_IPCSS }, 213 { E_TASK_RUNNING, E_OTHER_TASK_RUNNING}, 214 { E_SA_LOAD_FAILED, E_IPCSS }, 215 { E_SYSTEM_LOAD_OVER, E_IPCSS }, 216 { E_SERVICE_INNER_ERROR, E_INNER_FAILED }, 217 { E_VERSION_FILE_NOT_EXIST, E_VERSION_FILE_NO_EXIST }, 218 { E_INNER_RDB, E_INNER_FAILED } 219 }; 220 221 int32_t Convert2JsErrNum(int32_t errNum); 222 int32_t Convert2ErrNum(int32_t errNum); 223 } // namespace OHOS::FileManagement 224 225 #endif // OHOS_FILEMGMT_DFS_ERROR_H