• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_FRAMEWORKS_COMMON_INCLUDE_BGTASKMGR_INNER_ERRORS_H
17 #define FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_FRAMEWORKS_COMMON_INCLUDE_BGTASKMGR_INNER_ERRORS_H
18 
19 #include "errors.h"
20 #include <map>
21 
22 namespace OHOS {
23 namespace BackgroundTaskMgr {
24 /**
25  * ErrCode layout
26  *
27  * +--+--+--+--+--+--+--+--+---+---+
28  * |09|08|07|06|05|04|03|02| 01| 00|
29  * +--+--+--+--+--+--+--+--+---+---+
30  * | Syscap |      Code    |Subcode|
31  * +--+--+--+--+--+--+--+--+---+---+
32  */
33 const int OFFSET = 100;
34 const int THRESHOLD = 1000;
35 // Bgtask Common Error Code Defined.
36 enum : int32_t {
37     // errcode for common
38     ERR_BGTASK_PERMISSION_DENIED = 201,
39     ERR_BGTASK_INVALID_PARAM = 401,
40     // errcode for Continuous Task
41     ERR_BGTASK_NO_MEMORY = 980000101,
42     ERR_BGTASK_PARCELABLE_FAILED = 980000201,
43     ERR_BGTASK_TRANSACT_FAILED = 980000301,
44     ERR_BGTASK_SYS_NOT_READY = 980000401,
45     ERR_BGTASK_SERVICE_NOT_CONNECTED,
46     ERR_BGTASK_OBJECT_EXISTS = 980000501,
47     ERR_BGTASK_OBJECT_NOT_EXIST,
48     ERR_BGTASK_WIFI_VOIP_VERIFY_ERR,
49     ERR_BGTASK_KEEPING_TASK_VERIFY_ERR,
50     ERR_BGTASK_INVALID_BGMODE,
51     ERR_BGTASK_NOTIFICATION_VERIFY_FAILED = 980000601,
52     ERR_BGTASK_NOTIFICATION_ERR,
53     ERR_BGTASK_CHECK_TASK_PARAM,
54     ERR_BGTASK_CREATE_FILE_ERR = 980000701,
55     ERR_BGTASK_GET_ACTUAL_FILE_ERR,
56     ERR_BGTASK_OPEN_FILE_ERR,
57     // errcode for Transient Task
58     ERR_BGTASK_INVALID_PID_OR_UID = 990000101,
59     ERR_BGTASK_INVALID_BUNDLE_NAME,
60     ERR_BGTASK_INVALID_REQUEST_ID,
61     ERR_BGTASK_INVALID_CALLBACK = 990000201,
62     ERR_BGTASK_CALLBACK_EXISTS,
63     ERR_BGTASK_CALLBACK_NOT_EXIST,
64     ERR_BGTASK_NOT_IN_PRESET_TIME,
65     ERR_BGTASK_EXCEEDS_THRESHOLD,
66     ERR_BGTASK_TIME_INSUFFICIENT,
67     // errcode for Efficiency Resource
68     ERR_BGTASK_RESOURCES_EXCEEDS_MAX = 1870000101,
69     ERR_BGTASK_RESOURCES_INVALID_PID_OR_UID,
70     // other inner errcode
71     ERR_BGTASK_METHOD_CALLED_FAILED,
72     ERR_BGTASK_DATA_STORAGE_ERR,
73     ERR_BGTASK_SERVICE_INNER_ERROR,
74 };
75 
76 enum ParamErr: int32_t {
77     ERR_PARAM_NUMBER_ERR = 9800401,
78     ERR_REASON_NULL_OR_TYPE_ERR,
79     ERR_CALLBACK_NULL_OR_TYPE_ERR,
80     ERR_REQUESTID_NULL_OR_ID_TYPE_ERR,
81     ERR_REQUESTID_ILLEGAL,
82     ERR_CONTEXT_NULL_OR_TYPE_ERR,
83     ERR_BGMODE_NULL_OR_TYPE_ERR,
84     ERR_WANTAGENT_NULL_OR_TYPE_ERR,
85     ERR_ABILITY_INFO_EMPTY,
86     ERR_GET_TOKEN_ERR,
87     ERR_BGMODE_RANGE_ERR,
88     ERR_APP_NAME_EMPTY,
89     ERR_RESOURCE_TYPES_INVALID,
90     ERR_ISAPPLY_NULL_OR_TYPE_ERR,
91     ERR_TIMEOUT_INVALID,
92     ERR_ISPERSIST_NULL_OR_TYPE_ERR,
93     ERR_ISPROCESS_NULL_OR_TYPE_ERR,
94 };
95 
96 static std::map<int32_t, std::string> saErrCodeMsgMap = {
97     {ERR_BGTASK_PERMISSION_DENIED, "Permission denied."},
98     {ERR_BGTASK_NO_MEMORY, "Memory operation failed. Failed to allocate the memory."},
99     {ERR_BGTASK_SYS_NOT_READY, "System service operation failed. The system service is not ready."},
100     {ERR_BGTASK_SERVICE_NOT_CONNECTED, "System service operation failed. The system service is not connected."},
101     {ERR_BGTASK_PARCELABLE_FAILED, "Parcel operation failed."},
102     {ERR_BGTASK_TRANSACT_FAILED, "IPC communication failed."},
103     {ERR_BGTASK_OBJECT_EXISTS,
104         "Background Task verification failed. The application has applied for a background task."},
105     {ERR_BGTASK_OBJECT_NOT_EXIST,
106         "Background Task verification failed. The application has not applied for a background task."},
107     {ERR_BGTASK_WIFI_VOIP_VERIFY_ERR,
108         "Background Task verification failed. Only system application can apply for WIFI_INTERACTION or VoIP."},
109     {ERR_BGTASK_KEEPING_TASK_VERIFY_ERR,
110         "Background Task verification failed. TASK_KEEPING background mode only supported in particular device."},
111     {ERR_BGTASK_INVALID_BGMODE, "Background Task verification failed. The bgMode is invalid."},
112     {ERR_BGTASK_NOTIFICATION_VERIFY_FAILED,
113         "Notification verification failed. The title or text of the notification cannot be empty."},
114     {ERR_BGTASK_NOTIFICATION_ERR, "Notification verification failed. Failed to send or cancel the notification."},
115     {ERR_BGTASK_CREATE_FILE_ERR, "Task storage failed. Failed to create the storage task file."},
116     {ERR_BGTASK_GET_ACTUAL_FILE_ERR, "Task storage failed. Failed to get the actual storage task file."},
117     {ERR_BGTASK_OPEN_FILE_ERR, "Task storage failed. Failed to open the file."},
118     {ERR_BGTASK_INVALID_PID_OR_UID, "Caller information verification failed. Invalid pid or uid."},
119     {ERR_BGTASK_INVALID_BUNDLE_NAME, "Caller information verification failed. The bundleName cannot be found."},
120     {ERR_BGTASK_INVALID_REQUEST_ID, "Caller information verification failed. Invalid requestId."},
121     {ERR_BGTASK_INVALID_CALLBACK, "Caller information verification failed. The callback cannot be empty."},
122     {ERR_BGTASK_CALLBACK_EXISTS, "SuspendDelay verification failed. The callback already exists."},
123     {ERR_BGTASK_CALLBACK_NOT_EXIST, "SuspendDelay verification failed. The callback does not exist."},
124     {ERR_BGTASK_NOT_IN_PRESET_TIME,
125         "SuspendDelay verification failed. Request is not allow after the preset time of entering background."},
126     {ERR_BGTASK_EXCEEDS_THRESHOLD, "SuspendDelay verification failed. The number of request exceeds the threshold."},
127     {ERR_BGTASK_TIME_INSUFFICIENT,
128         "SuspendDelay verification failed. The remaining time to run transient task is insufficient."},
129     {ERR_BGTASK_RESOURCES_EXCEEDS_MAX,
130         "Caller information verification failed. The number of resources applied exceeds maximun."},
131     {ERR_BGTASK_SERVICE_INNER_ERROR, "Service inner error."},
132 };
133 
134 static std::map<int32_t, std::string> paramErrCodeMsgMap = {
135     {ERR_PARAM_NUMBER_ERR, "The number of arguments is wrong."},
136     {ERR_REASON_NULL_OR_TYPE_ERR, "The reason cannot be null and its type must be string."},
137     {ERR_CALLBACK_NULL_OR_TYPE_ERR, "The callback cannot be null and its type must be function."},
138     {ERR_REQUESTID_NULL_OR_ID_TYPE_ERR, "The requestId cannot be null and its type must be integer."},
139     {ERR_REQUESTID_ILLEGAL, "The requestId must be greater than 0."},
140     {ERR_CONTEXT_NULL_OR_TYPE_ERR, "The context cannot be null and its type must be Context."},
141     {ERR_BGMODE_NULL_OR_TYPE_ERR, "The bgMode cannot be null and its type must be BackgroundMode object."},
142     {ERR_WANTAGENT_NULL_OR_TYPE_ERR, "The wantAgent cannot be null and its type must be WantAgent object."},
143     {ERR_ABILITY_INFO_EMPTY, "The abilityInfo of context cannot be null."},
144     {ERR_GET_TOKEN_ERR, "The token of context cannot be null."},
145     {ERR_BGMODE_RANGE_ERR, "The value of bgMode ranges from BG_MODE_ID_BEGIN to BG_MODE_ID_END."},
146     {ERR_APP_NAME_EMPTY, "The app name of abilityInfo in context cannot be null."},
147     {ERR_RESOURCE_TYPES_INVALID, "The resourcesType cannot be null and must be integer greater than 0."},
148     {ERR_ISAPPLY_NULL_OR_TYPE_ERR, "The isApply cannot be null and its type must be boolean."},
149     {ERR_TIMEOUT_INVALID, "The timeOut cannot be null and must be integer greater than 0."},
150     {ERR_ISPERSIST_NULL_OR_TYPE_ERR, "The isPersist cannot be null and must be boolean."},
151     {ERR_ISPROCESS_NULL_OR_TYPE_ERR, "The isProcess cannot be null and must be boolean."},
152     {ERR_BGTASK_INVALID_PARAM, "The input param is invalid."}
153 };
154 
155 }  // namespace BackgroundTaskMgr
156 }  // namespace OHOS
157 #endif  // FOUNDATION_RESOURCESCHEDULE_BACKGROUND_TASK_MGR_FRAMEWORKS_COMMON_INCLUDE_BGTASKMGR_INNER_ERRORS_H