• 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 #ifndef PASTEBOARD_HILOG_H
16 #define PASTEBOARD_HILOG_H
17 
18 #include "hilog/log.h"
19 
20 namespace OHOS {
21 namespace MiscServices {
22 // param of log interface, such as PASTEBOARD_HILOGF.
23 enum PasteboardSubModule {
24     PASTEBOARD_MODULE_INNERKIT = 0,
25     PASTEBOARD_MODULE_CLIENT,
26     PASTEBOARD_MODULE_SERVICE,
27     PASTEBOARD_MODULE_JAVAKIT, // java kit, defined to avoid repeated use of domain.
28     PASTEBOARD_MODULE_JNI,
29     PASTEBOARD_MODULE_COMMON,
30     PASTEBOARD_MODULE_JS_NAPI,
31     PASTEBOARD_MODULE_BUTT,
32 };
33 
34 // 0xD001C00: subsystem:PASTEBOARD module:PasteboardManager, 8 bits reserved.
35 static constexpr unsigned int BASE_PASTEBOARD_DOMAIN_ID = 0xD001C00;
36 
37 enum PasteboardDomainId {
38     PASTEBOARD_INNERKIT_DOMAIN = BASE_PASTEBOARD_DOMAIN_ID + PASTEBOARD_MODULE_INNERKIT,
39     PASTEBOARD_CLIENT_DOMAIN,
40     PASTEBOARD_SERVICE_DOMAIN,
41     PASTEBOARD_JAVAKIT_DOMAIN,
42     PASTEBOARD_JNI_DOMAIN,
43     PASTEBOARD_COMMON_DOMAIN,
44     PASTEBOARD_JS_NAPI,
45     PASTEBOARD_BUTT,
46 };
47 
48 static constexpr OHOS::HiviewDFX::HiLogLabel PASTEBOARD_MODULE_LABEL[PASTEBOARD_MODULE_BUTT] = {
49     { LOG_CORE, PASTEBOARD_INNERKIT_DOMAIN, "PasteboardInnerKit" },
50     { LOG_CORE, PASTEBOARD_CLIENT_DOMAIN, "PasteboardClient" },
51     { LOG_CORE, PASTEBOARD_SERVICE_DOMAIN, "PasteboardService" },
52     { LOG_CORE, PASTEBOARD_JAVAKIT_DOMAIN, "PasteboardJavaKit" },
53     { LOG_CORE, PASTEBOARD_JNI_DOMAIN, "PasteboardJni" },
54     { LOG_CORE, PASTEBOARD_COMMON_DOMAIN, "PasteboardCommon" },
55     { LOG_CORE, PASTEBOARD_JS_NAPI, "PasteboardJSNAPI" },
56 };
57 
58 #define FILENAME__ (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__)
59 #define FORMATED__(fmt, ...) "[%{public}s] %{public}s# " fmt, FILENAME__, __FUNCTION__, ##__VA_ARGS__
60 
61 // In order to improve performance, do not check the module range.
62 // Besides, make sure module is less than PASTEBOARD_MODULE_BUTT.
63 #define PASTEBOARD_HILOGF(module, ...) \
64     (void)OHOS::HiviewDFX::HiLog::Fatal(PASTEBOARD_MODULE_LABEL[module], FORMATED__(__VA_ARGS__))
65 #define PASTEBOARD_HILOGE(module, ...) \
66     (void)OHOS::HiviewDFX::HiLog::Error(PASTEBOARD_MODULE_LABEL[module], FORMATED__(__VA_ARGS__))
67 #define PASTEBOARD_HILOGW(module, ...) \
68     (void)OHOS::HiviewDFX::HiLog::Warn(PASTEBOARD_MODULE_LABEL[module], FORMATED__(__VA_ARGS__))
69 #define PASTEBOARD_HILOGI(module, ...) \
70     (void)OHOS::HiviewDFX::HiLog::Info(PASTEBOARD_MODULE_LABEL[module], FORMATED__(__VA_ARGS__))
71 #define PASTEBOARD_HILOGD(module, ...) \
72     (void)OHOS::HiviewDFX::HiLog::Debug(PASTEBOARD_MODULE_LABEL[module], FORMATED__(__VA_ARGS__))
73 } // namespace MiscServices
74 } // namespace OHOS
75 
76 #endif // PASTEBOARD_HILOG_H
77