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