• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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