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 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 
31 enum CloudSyncServiceErrCode : ErrCode {
32     E_OK = 0,
33     E_SEVICE_DIED,
34     E_INVAL_ARG,
35     E_BROKEN_IPC,
36     E_SA_LOAD_FAILED,
37     E_SERVICE_DESCRIPTOR_IS_EMPTY,
38     E_PERMISSION_DENIED,
39     E_PERMISSION_SYSTEM,
40     E_GET_PHYSICAL_PATH_FAILED,
41     E_GET_TOKEN_INFO_ERROR,
42     E_SYNCER_NUM_OUT_OF_RANGE,
43     E_SYNC_FAILED_BATTERY_LOW,
44     E_SYNC_FAILED_BATTERY_TOO_LOW,
45     E_SYNC_FAILED_NETWORK_NOT_AVAILABLE,
46     E_GET_NETWORK_MANAGER_FAILED,
47     E_DELETE_FAILED,
48     E_NO_SUCH_FILE,
49     E_RENAME_FAIL,
50     E_SYSTEM_LOAD_OVER,
51     E_EXCEED_MAX_SIZE,
52     E_ILLEGAL_URI,
53 
54     /* data syncer */
55     E_CLOUD_SDK,
56     E_RDB,
57     E_CONTEXT,
58     E_STOP,
59     E_PENDING,
60     E_SCHEDULE,
61     E_ASYNC_RUN,
62     E_PATH,
63     E_DATA,
64     E_NOTIFY,
65     E_UNKNOWN,
66     E_CLOUD_STORAGE_FULL,
67     E_LOCAL_STORAGE_FULL,
68     E_OSACCOUNT,
69     E_USER_LOCKED,
70     E_GET_SIZE_ERROR,
71 
72     E_IPC_READ_FAILED,
73     E_IPC_WRITE_FAILED,
74     E_SOFTBUS_SESSION_FAILED,
75     E_GET_DEVICE_ID,
76     E_GET_USER_ID,
77     E_NULLPTR,
78     /* session */
79     E_CREATE_SESSION,
80     E_OPEN_SESSION,
81     E_WAIT_SESSION_OPENED,
82     E_FILE_NOT_EXIST,
83     E_SEND_FILE,
84     E_MEMORY,
85 
86     /* eventhandler */
87     E_EVENT_HANDLER,
88     E_ZIP,
89 };
90 
91 enum DFSErrCode {
92     ERR_OK = 0,
93     ERR_BAD_VALUE = -1,
94 
95     ERR_APPLY_RESULT = 1,
96     ERR_DLOPEN,
97     ERR_PUBLISH_STATE,
98     ERR_ALLCONNECT,
99 };
100 
101 enum IPCErrCode {
102     E_DEAD_REPLY = 29189,
103 };
104 
105 enum JsErrCode {
106     E_PERMISSION = 201,
107     E_PERMISSION_SYS = 202,
108     E_DFS_CANCEL_SUCCESS = 204,
109     E_PARAMS_ = 401,
110     E_IPCSS = STORAGE_SERVICE_SYS_CAP_TAG + 1,
111     E_UNKNOWN_ERR = FILEIO_SYS_CAP_TAG + 42,
112     E_INVALID_URI = USER_FILE_MANAGER_SYS_CAP_TAG + 2,
113     E_CLOUD_NOT_READY = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 1,
114     E_NETWORK_ERR = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 2,
115     E_BATTERY_WARNING = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 3,
116     E_EXCEED_MAX_LIMIT = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 4,
117     E_DATABASE_FAILED = DISTRIBUTEDFILE_SERVICE_SYS_CAP_TAG + 5
118 };
119 
120 const std::unordered_map<int32_t, int32_t> errCodeTable {
121     { E_PERMISSION_DENIED, E_PERMISSION },
122     { E_PERMISSION_SYSTEM, E_PERMISSION_SYS },
123     { E_INVAL_ARG, E_PARAMS_ },
124     { E_BROKEN_IPC, E_IPCSS },
125     { E_CLOUD_SDK, E_CLOUD_NOT_READY },
126     { E_ILLEGAL_URI, E_INVALID_URI },
127     { E_SYNC_FAILED_NETWORK_NOT_AVAILABLE, E_NETWORK_ERR },
128     { E_SYNC_FAILED_BATTERY_TOO_LOW, E_BATTERY_WARNING },
129     { E_EXCEED_MAX_SIZE, E_EXCEED_MAX_LIMIT },
130     { E_RDB, E_DATABASE_FAILED },
131     { E_DEAD_REPLY, E_IPCSS }
132 };
133 
134 int32_t Convert2JsErrNum(int32_t errNum);
135 } // namespace OHOS::FileManagement
136 
137 #endif // OHOS_FILEMGMT_DFS_ERROR_H