• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022-2023 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 DISTRIBUTEDDATAMGR_PASTEBOARD_EVENT_DFX_H
17 #define DISTRIBUTEDDATAMGR_PASTEBOARD_EVENT_DFX_H
18 
19 #include "hisysevent.h"
20 #include "pasteboard_event_common.h"
21 namespace OHOS {
22 namespace MiscServices {
23 namespace RadarReporter {
24 using namespace OHOS::HiviewDFX;
25 enum BizScene : std::int32_t {
26     DFX_SET_PASTEBOARD = 1,
27     DFX_DISTRIBUTED_PASTEBOARD_BROADCAST_SEND = 2,
28     DFX_DISTRIBUTED_PASTEBOARD_BROADCAST_RECEIVE = 3,
29     DFX_DISTRIBUTED_PASTEBOARD_BROADCAST_PULL = 4,
30     DFX_GET_PASTEBOARD = 5,
31     DFX_CLEAR_PASTEBOARD = 6,
32     DFX_OBSERVER = 7,
33     DFX_PLUGIN_CREATE_DESTROY = 8,
34 };
35 
36 enum BizStageSetPasteboard : std::int32_t {
37     DFX_SET_BIZ_SCENE = 0,
38     DFX_CHECK_SET_SERVER = 1,
39     DFX_CHECK_SET_DELAY_COPY = 2,
40     DFX_CHECK_SET_AUTHORITY = 3,
41     DFX_CHECK_ONLINE_DEVICE = 4,
42     DFX_LOAD_DISTRIBUTED_PLUGIN = 5,
43 };
44 
45 enum BizStageBroadcastSend : std::int32_t {
46     DFX_REGISTER_SEND_LISTEN = 1,
47     DFX_RECORD_SEND_BROADCAST = 2,
48 };
49 
50 enum BizStageBroadcastReceive : std::int32_t {
51     DFX_REGISTER_RECEIVE_LISTEN = 1,
52     DFX_RECORD_RECEIVE_BROADCAST = 2,
53 };
54 
55 enum BizStageBroadcastPull : std::int32_t {
56     DFX_PRE_SYNC = 1,
57     DFX_GET_PASTE_DATA_SYNC = 2,
58     DFX_SYNC_DETAIL = 3,
59 };
60 
61 enum BizStageGetPasteboard : std::int32_t {
62     DFX_GET_BIZ_SCENE = 0,
63     DFX_CHECK_GET_SERVER = 1,
64     DFX_CHECK_GET_DELAY_PASTE = 2,
65     DFX_CHECK_GET_AUTHORITY = 3,
66     DFX_GET_DATA_INFO = 4,
67     DFX_LOCAL_PASTE_END = 5,
68     DFX_DISTRIBUTED_PASTE_END = 6,
69     DFX_DISTRIBUTED_FILE_START = 7,
70     DFX_DISTRIBUTED_FILE_END = 8,
71 };
72 
73 enum BizStageClearPasteboard : std::int32_t {
74     DFX_MANUAL_CLEAR = 1,
75     DFX_AUTO_CLEAR = 2,
76 };
77 
78 enum BizStageObserver : std::int32_t {
79     DFX_ADD_OBSERVER = 1,
80     DFX_REMOVE_SINGLE_OBSERVER = 2,
81     DFX_REMOVE_ALL_OBSERVER = 3,
82 };
83 
84 enum BizStagePlugin : std::int32_t {
85     DFX_PLUGIN_CREATE = 1,
86     DFX_PLUGIN_DESTROY = 2,
87 };
88 
89 enum StageRes : std::int32_t {
90     DFX_IDLE = 0,
91     DFX_SUCCESS = 1,
92     DFX_FAILED = 2,
93     DFX_CANCELLED = 3,
94 };
95 
96 enum BizState : std::int32_t {
97     DFX_BEGIN = 1,
98     DFX_END = 2,
99 };
100 
101 class PasteboardDfxUntil {
102 public:
103     static std::string GetAnonymousID(const std::string &deviceId);
104 
105 private:
106     static constexpr int minIdLen = 10;
107     static constexpr int maskIdLen = 5;
108 };
109 
110 constexpr char DOMAIN[] = "DISTDATAMGR";
111 constexpr const char *EVENT_NAME = "DISTRIBUTED_PASTEBOARD_BEHAVIOR";
112 constexpr const char *ORG_PKG = "distributeddata";
113 constexpr const char *BIZ_STATE = "BIZ_STATE";
114 constexpr const char *SET_DATA_TYPE = "SET_DATA_TYPE";
115 constexpr const char *CONCURRENT_ID = "CONCURRENT_ID";
116 
117 constexpr HiviewDFX::HiSysEvent::EventType TYPE = HiviewDFX::HiSysEvent::EventType::BEHAVIOR;
118 
119 #define RADAR_REPORT(bizScene, bizStage, stageRes, ...)                                                              \
120     ({                                                                                                               \
121         HiSysEventWrite(RadarReporter::DOMAIN, RadarReporter::EVENT_NAME, RadarReporter::TYPE, "ORG_PKG",            \
122             RadarReporter::ORG_PKG, "FUNC", __FUNCTION__, "BIZ_SCENE", bizScene, "BIZ_STAGE", bizStage, "STAGE_RES", \
123             stageRes, ##__VA_ARGS__);                                                                                \
124     })
125 
126 #define COPY_RADAR_REPORT(bizScene, bizStage, reportInfo)                                                            \
127     ({                                                                                                               \
128         HiSysEventWrite(RadarReporter::DOMAIN, RadarReporter::EVENT_NAME, RadarReporter::TYPE, "ORG_PKG",            \
129             RadarReporter::ORG_PKG, "FUNC", __FUNCTION__, "BIZ_SCENE", bizScene, "BIZ_STAGE", bizStage,              \
130             "STAGE_RES", reportInfo.stageRes, "APP_CALLEE", reportInfo.bundleName,                                   \
131             "DEVICE_TYPE", reportInfo.commonInfo.deviceType, "RECORD_NUM", reportInfo.description.recordNum,         \
132             "ENTRY_NUM", reportInfo.description.entryNum, "PASTEDATA_TYPE", reportInfo.description.mimeTypes,        \
133             "DATA_SIZE", reportInfo.commonInfo.dataSize,                                                             \
134             "CURRENT_ACCOUNT_ID", reportInfo.commonInfo.currentAccountId);                                           \
135     })
136 
137     #define PASTE_RADAR_REPORT(bizScene, bizStage, reportInfo)                                                       \
138     ({                                                                                                               \
139         HiSysEventWrite(RadarReporter::DOMAIN, RadarReporter::EVENT_NAME, RadarReporter::TYPE, "ORG_PKG",            \
140             RadarReporter::ORG_PKG, "FUNC", __FUNCTION__, "BIZ_SCENE", bizScene, "BIZ_STAGE", bizStage,              \
141             "STAGE_RES", reportInfo.stageRes, "CONCURRENT_ID", reportInfo.pasteInfo.pasteId,                         \
142             "APP_CALLEE", reportInfo.bundleName, "DEVICE_TYPE", reportInfo.commonInfo.deviceType,                    \
143             "ONLINE_DEV_NUM", reportInfo.pasteInfo.onlineDevNum, "RECORD_NUM", reportInfo.description.recordNum,     \
144             "ENTRY_NUM", reportInfo.description.entryNum, "PASTEDATA_TYPE", reportInfo.description.mimeTypes,        \
145             "IS_PEER_ONLINE", reportInfo.pasteInfo.isPeerOnline, "DATA_SIZE", reportInfo.commonInfo.dataSize,        \
146             "CURRENT_ACCOUNT_ID", reportInfo.commonInfo.currentAccountId,                                            \
147             "PEER_NET_ID", reportInfo.pasteInfo.peerNetId, "PEER_UDID", reportInfo.pasteInfo.peerUdid,               \
148             "NETWORK_TYPE", reportInfo.pasteInfo.networkType, "APP_CALLER", reportInfo.pasteInfo.peerBundleName);    \
149     })
150 } // namespace RadarReporter
151 } // namespace MiscServices
152 } // namespace OHOS
153 #endif // DISTRIBUTEDDATAMGR_PASTEBOARD_EVENT_DFX_H
154