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 <sys/time.h> 21 #include <time.h> 22 23 #include <functional> 24 25 #include "hilog/log.h" 26 27 namespace OHOS { 28 namespace MiscServices { 29 30 #define LOG_INFO(fmt, args...) \ 31 LogTimeStamp(); \ 32 printf("I %s:%d %s - " fmt, basename(__FILE__), __LINE__, __FUNCTION__, ##args) 33 34 #define LOG_ERROR(fmt, args...) \ 35 LogTimeStamp(); \ 36 printf("E %s:%d %s - " fmt, basename(__FILE__), __LINE__, __FUNCTION__, ##args) 37 38 #define LOG_WARNING(fmt, args...) \ 39 LogTimeStamp(); \ 40 printf("W %s:%d %s - " fmt, basename(__FILE__), __LINE__, __FUNCTION__, ##args) 41 42 #if DEBUG 43 #define LOG_DEBUG(fmt, args...) \ 44 LogTimeStamp(); \ 45 printf("D %s:%d %s - " fmt, basename(__FILE__), __LINE__, __FUNCTION__, ##args) 46 #else 47 #define LOG_DEBUG(fmt, args...) 48 #endif 49 50 void LogTimeStamp(); 51 52 // Error Code 53 namespace ErrorCode { 54 // Error Code definition in the input method management system 55 enum { 56 ERROR_STATUS_PERMISSION_DENIED = -EPERM, // permission denied 57 ERROR_STATUS_UNKNOWN_TRANSACTION = -EBADMSG, // unknown transaction 58 59 // binder exception error code from Status.h 60 ERROR_EX_ILLEGAL_ARGUMENT = -3, // illegal argument exception 61 ERROR_EX_NULL_POINTER = -4, // null pointer exception 62 ERROR_EX_ILLEGAL_STATE = -5, // illegal state exception 63 ERROR_EX_PARCELABLE = -6, // parcelable exception 64 ERROR_EX_UNSUPPORTED_OPERATION = -7, // unsupported operation exception 65 ERROR_EX_SERVICE_SPECIFIC = -8, // service specific exception 66 // no error 67 NO_ERROR = 0, // no error 68 69 // system service error 70 ERROR_NULL_POINTER = 1, // null pointer 71 ERROR_BAD_PARAMETERS = 2, // bad parameters 72 ERROR_CLIENT_NOT_FOUND = 3, 73 ERROR_CLIENT_NULL_POINTER = 4, 74 ERROR_SUBSCRIBE_KEYBOARD_EVENT = 5, 75 ERROR_IME_NOT_STARTED = 6, 76 ERROR_SERVICE_START_FAILED = 7, 77 78 ERROR_CONTROLLER_INVOKING_FAILED = 8, 79 ERROR_PERSIST_CONFIG = 9, 80 ERROR_KBD_HIDE_FAILED = 10, 81 ERROR_SWITCH_IME = 11, 82 ERROR_PACKAGE_MANAGER = 12, 83 ERROR_REMOTE_CLIENT_DIED = 13, 84 ERROR_IME_START_FAILED = 14, // failed to start IME service 85 ERROR_KBD_SHOW_FAILED = 15, // failed to show keyboard 86 ERROR_CLIENT_NOT_BOUND = 16, 87 ERROR_CLIENT_NOT_EDITABLE = 17, 88 ERROR_CLIENT_NOT_FOCUSED = 18, 89 ERROR_CLIENT_ADD_FAILED = 19, 90 ERROR_OPERATE_PANEL = 20, 91 ERROR_NOT_CURRENT_IME = 21, 92 ERROR_NOT_IME = 22, 93 ERROR_ADD_DEATH_RECIPIENT_FAILED = 23, 94 ERROR_STATUS_SYSTEM_PERMISSION = 24, // not system application 95 ERROR_IME = 25, 96 ERROR_PARAMETER_CHECK_FAILED = 26, 97 ERROR_IME_START_INPUT_FAILED = 27, 98 ERROR_KEYWORD_NOT_FOUND = 28, 99 ERROR_ENABLE_IME = 29, 100 ERROR_PARSE_CONFIG_FILE = 30, 101 ERROR_NOT_DEFAULT_IME = 31, 102 ERROR_ENABLE_SECURITY_MODE = 32, 103 ERROR_DISPATCH_KEY_EVENT = 33, 104 ERROR_INVALID_PRIVATE_COMMAND_SIZE = 34, 105 ERROR_TEXT_LISTENER_ERROR = 35, 106 ERROR_PANEL_NOT_FOUND = 36, 107 ERROR_WINDOW_MANAGER = 37, 108 ERROR_GET_TEXT_CONFIG = 38, 109 ERROR_TEXT_PREVIEW_NOT_SUPPORTED = 39, 110 ERROR_INVALID_RANGE = 40, 111 ERROR_CMD_LISTENER_ERROR = 41, 112 ERROR_SYSTEM_CMD_CHANNEL_ERROR = 42, 113 ERROR_INVALID_PRIVATE_COMMAND = 43, 114 ERROR_OS_ACCOUNT = 44, 115 ERROR_RES_ERROR = 46, 116 }; 117 }; // namespace ErrorCode 118 119 static constexpr HiviewDFX::HiLogLabel g_SMALL_SERVICES_LABEL = { LOG_CORE, 0xD001C10, "ImsaKit" }; 120 121 #define IMSA_HILOGD(fmt, ...) \ 122 (void)HILOG_IMPL(LOG_CORE, LOG_DEBUG, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain, \ 123 OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \ 124 __FUNCTION__, ##__VA_ARGS__) 125 #define IMSA_HILOGE(fmt, ...) \ 126 (void)HILOG_IMPL(LOG_CORE, LOG_ERROR, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain, \ 127 OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \ 128 __FUNCTION__, ##__VA_ARGS__) 129 #define IMSA_HILOGF(fmt, ...) \ 130 (void)HILOG_IMPL(LOG_CORE, LOG_FATAL, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain, \ 131 OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \ 132 __FUNCTION__, ##__VA_ARGS__) 133 #define IMSA_HILOGI(fmt, ...) \ 134 (void)HILOG_IMPL(LOG_CORE, LOG_INFO, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain, \ 135 OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \ 136 __FUNCTION__, ##__VA_ARGS__) 137 #define IMSA_HILOGW(fmt, ...) \ 138 (void)HILOG_IMPL(LOG_CORE, LOG_WARN, OHOS::MiscServices::g_SMALL_SERVICES_LABEL.domain, \ 139 OHOS::MiscServices::g_SMALL_SERVICES_LABEL.tag, "line: %{public}d, function: %{public}s," fmt, __LINE__, \ 140 __FUNCTION__, ##__VA_ARGS__) 141 using Function = std::function<bool()>; 142 bool BlockRetry(uint32_t interval, uint32_t maxRetryTimes, Function func); 143 } // namespace MiscServices 144 } // namespace OHOS 145 #endif // SERVICES_INCLUDE_GLOBAL_H 146