• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 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 SERVICES_INCLUDE_GLOBAL_H
17 #define SERVICES_INCLUDE_GLOBAL_H
18 
19 #include <errno.h>
20 #include <functional>
21 #include <sys/time.h>
22 #include <time.h>
23 
24 #include "hilog/log.h"
25 
26 namespace OHOS {
27 namespace MiscServices {
28 // Error Code
29 namespace ErrorCode {
30 // Error Code definition in the input method management system
31 enum {
32     ERROR_STATUS_UNKNOWN_TRANSACTION = -EBADMSG, // unknown transaction
33 
34     // binder exception error code from Status.h
35     ERROR_EX_ILLEGAL_ARGUMENT = -3,      // illegal argument exception
36     ERROR_EX_NULL_POINTER = -4,          // null pointer exception
37     ERROR_EX_ILLEGAL_STATE = -5,         // illegal state exception
38     ERROR_EX_PARCELABLE = -6,            // parcelable exception
39     ERROR_EX_UNSUPPORTED_OPERATION = -7, // unsupported operation exception
40     ERROR_EX_SERVICE_SPECIFIC = -8,      // service specific exception
41     // no error
42     NO_ERROR = 0, // no error
43 
44     ERROR_NULL_POINTER,   // null pointer
45     ERROR_BAD_PARAMETERS, // bad parameters
46     ERROR_SUBSCRIBE_KEYBOARD_EVENT,
47 
48     ERROR_CONTROLLER_INVOKING_FAILED,
49     ERROR_PERSIST_CONFIG,
50     ERROR_KBD_HIDE_FAILED,
51     ERROR_PACKAGE_MANAGER,
52     ERROR_REMOTE_CLIENT_DIED,
53 
54     ERROR_NOT_CURRENT_IME,
55     ERROR_NOT_IME,
56     ERROR_NOT_AI_APP_IME,
57     ERROR_ADD_DEATH_RECIPIENT_FAILED,
58     ERROR_STATUS_SYSTEM_PERMISSION, // not system application
59     ERROR_PARAMETER_CHECK_FAILED,
60     ERROR_KEYWORD_NOT_FOUND,
61     ERROR_ENABLE_IME,
62     ERROR_NOT_DEFAULT_IME,
63     ERROR_ENABLE_SECURITY_MODE,
64     ERROR_DISPATCH_KEY_EVENT,
65     ERROR_INVALID_PRIVATE_COMMAND_SIZE,
66     ERROR_PANEL_NOT_FOUND,
67     ERROR_WINDOW_MANAGER,
68     ERROR_GET_TEXT_CONFIG,
69     ERROR_SYSTEM_CMD_CHANNEL_ERROR,
70     ERROR_INVALID_PRIVATE_COMMAND,
71     ERROR_OS_ACCOUNT,
72     ERROR_TASK_MANAGER_PEND_FAILED,
73     ERROR_INVALID_PANEL_TYPE,
74     ERROR_INVALID_PANEL_FLAG,
75     ERROR_MSG_HANDLER_NOT_REGIST,
76     ERROR_SECURITY_MODE_OFF,
77     ERROR_MESSAGE_HANDLER,
78     ERROR_INVALID_ARRAY_BUFFER_SIZE,
79     ERROR_SERVICE_START_FAILED,
80     ERROR_JS_CB_NOT_REGISTER,       // only for hiSysEvent
81     ERROR_DEAL_TIMEOUT,              // only for hiSysEvent
82     ERROR_IPC_REMOTE_NULLPTR,
83 
84     ERROR_IMA_BEGIN,
85     ERROR_IME,
86     ERROR_OPERATE_PANEL,
87     ERROR_IMA_CHANNEL_NULLPTR,
88     ERROR_IMA_NULLPTR,
89     ERROR_IMA_DATA_CHANNEL_ABNORMAL,
90     ERROR_IMA_INVALID_IMMERSIVE_EFFECT,
91     ERROR_IMA_PRECONDITION_REQUIRED,
92     ERROR_IMA_END,
93 
94     ERROR_IMC_BEGIN,
95     ERROR_CLIENT_NOT_EDITABLE,
96     ERROR_TEXT_PREVIEW_NOT_SUPPORTED,
97     ERROR_TEXT_LISTENER_ERROR,
98     ERROR_INVALID_RANGE,
99     ERROR_CLIENT_NOT_BOUND,
100     ERROR_IMC_NULLPTR,
101     ERROR_IMC_END,
102 
103     ERROR_IMSA_BEGIN,
104     ERROR_PARSE_CONFIG_FILE,
105     ERROR_IME_START_INPUT_FAILED,
106     ERROR_STATUS_PERMISSION_DENIED,
107     ERROR_CLIENT_NOT_FOCUSED,
108     ERROR_CLIENT_NULL_POINTER,
109     ERROR_CLIENT_ADD_FAILED,
110     ERROR_CLIENT_NOT_FOUND,
111     ERROR_IME_NOT_STARTED,
112     ERROR_KBD_SHOW_FAILED,  // failed to show keyboard
113     ERROR_IMSA_INPUT_TYPE_NOT_FOUND,
114     ERROR_IMSA_DEFAULT_IME_NOT_FOUND,
115     ERROR_IMSA_CLIENT_INPUT_READY_FAILED,
116     ERROR_IMSA_MALLOC_FAILED,
117     ERROR_IMSA_NULLPTR,
118     ERROR_IMSA_USER_SESSION_NOT_FOUND,
119     ERROR_IMSA_GET_IME_INFO_FAILED,
120     ERROR_IMSA_IME_TO_START_NULLPTR,
121     ERROR_IMSA_REBOOT_OLD_IME_NOT_STOP,
122     ERROR_IMSA_IME_EVENT_CONVERT_FAILED,
123     ERROR_IMSA_IME_CONNECT_FAILED,
124     ERROR_IMSA_IME_DISCONNECT_FAILED,
125     ERROR_IMSA_IME_START_TIMEOUT,
126     ERROR_IMSA_IME_START_MORE_THAN_EIGHT_SECOND,
127     ERROR_IMSA_FORCE_STOP_IME_TIMEOUT,
128     ERROR_DEVICE_UNSUPPORTED,
129     ERROR_SCENE_UNSUPPORTED,
130     ERROR_PRIVATE_COMMAND_IS_EMPTY,
131     ERROR_IME_NOT_FOUND,
132     ERROR_OPERATE_SYSTEM_IME,
133     ERROR_SWITCH_IME,
134     ERROR_IME_HAS_STARTED,
135     ERROR_OPERATION_NOT_ALLOWED,
136     ERROR_REQUEST_RATE_EXCEEDED,
137     ERROR_IMSA_END,
138 };
139 }; // namespace ErrorCode
140 
141 static constexpr HiviewDFX::HiLogLabel g_SMALL_SERVICES_LABEL = { LOG_CORE, 0xD001C10, "ImsaKit" };
142 
143 #define IMSA_HILOGD(fmt, ...)                                                                                    \
144     (void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain,                     \
145         OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \
146         __FUNCTION__, ##__VA_ARGS__)
147 #define IMSA_HILOGE(fmt, ...)                                                                                    \
148     (void)HILOG_IMPL(LOG_CORE, LOG_ERROR, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain,                     \
149         OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \
150         __FUNCTION__, ##__VA_ARGS__)
151 #define IMSA_HILOGF(fmt, ...)                                                                                    \
152     (void)HILOG_IMPL(LOG_CORE, LOG_FATAL, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain,                     \
153         OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \
154         __FUNCTION__, ##__VA_ARGS__)
155 #define IMSA_HILOGI(fmt, ...)                                                                                    \
156     (void)HILOG_IMPL(LOG_CORE, LOG_INFO, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain,                      \
157         OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \
158         __FUNCTION__, ##__VA_ARGS__)
159 #define IMSA_HILOGW(fmt, ...)                                                                                    \
160     (void)HILOG_IMPL(LOG_CORE, LOG_WARN, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain,                      \
161         OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \
162         __FUNCTION__, ##__VA_ARGS__)
163 using Function = std::function<bool()>;
164 bool BlockRetry(uint32_t interval, uint32_t maxRetryTimes, Function func);
165 } // namespace MiscServices
166 } // namespace OHOS
167 #endif // SERVICES_INCLUDE_GLOBAL_H
168