1 /*
2 * Copyright (c) 2024 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 #include "dp_radar_helper.h"
17 #include <errors.h>
18 #include "hisysevent.h"
19 #include "device_profile_log.h"
20
21 namespace OHOS {
22 namespace DeviceProfile {
23 IMPLEMENT_SINGLE_INSTANCE(DpRadarHelper);
ReportCheckDpSa(struct RadarInfo info)24 bool DpRadarHelper::ReportCheckDpSa(struct RadarInfo info)
25 {
26 int32_t res = ERR_OK;
27 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
28 res = HiSysEventWrite(
29 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
30 DP_DATA_OPERATE_BEHAVIOR,
31 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
32 "ORG_PKG", ORGPKGNAME,
33 "FUNC", info.funcName,
34 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
35 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_CHECK_SA),
36 "STAGE_RES", info.stageRes,
37 "BIZ_STATE", info.bizState,
38 "TO_CALL_PKG", info.toCallPkg);
39 } else {
40 res = HiSysEventWrite(
41 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
42 DP_DATA_OPERATE_BEHAVIOR,
43 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
44 "ORG_PKG", ORGPKGNAME,
45 "FUNC", info.funcName,
46 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
47 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_CHECK_SA),
48 "STAGE_RES", info.stageRes,
49 "BIZ_STATE", info.bizState,
50 "TO_CALL_PKG", info.toCallPkg,
51 "ERROR_CODE", info.errCode);
52 }
53 if (res != ERR_OK) {
54 return false;
55 }
56 return true;
57 }
58
ReportLoadDpSa(struct RadarInfo info)59 bool DpRadarHelper::ReportLoadDpSa(struct RadarInfo info)
60 {
61 int32_t res = ERR_OK;
62 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
63 res = HiSysEventWrite(
64 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
65 DP_DATA_OPERATE_BEHAVIOR,
66 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
67 "ORG_PKG", ORGPKGNAME,
68 "FUNC", info.funcName,
69 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
70 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
71 "STAGE_RES", info.stageRes,
72 "TO_CALL_PKG", info.toCallPkg);
73 } else {
74 res = HiSysEventWrite(
75 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
76 DP_DATA_OPERATE_BEHAVIOR,
77 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
78 "ORG_PKG", ORGPKGNAME,
79 "FUNC", info.funcName,
80 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
81 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
82 "STAGE_RES", info.stageRes,
83 "BIZ_STATE", info.bizState,
84 "TO_CALL_PKG", info.toCallPkg,
85 "ERROR_CODE", info.errCode);
86 }
87 if (res != ERR_OK) {
88 return false;
89 }
90 return true;
91 }
92
ReportLoadDpSaCb(struct RadarInfo info)93 bool DpRadarHelper::ReportLoadDpSaCb(struct RadarInfo info)
94 {
95 int32_t res = ERR_OK;
96 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
97 res = HiSysEventWrite(
98 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
99 DP_DATA_OPERATE_BEHAVIOR,
100 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
101 "ORG_PKG", ORGPKGNAME,
102 "FUNC", info.funcName,
103 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
104 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
105 "STAGE_RES", info.stageRes,
106 "HOST_NAME", info.hostName);
107 } else {
108 res = HiSysEventWrite(
109 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
110 DP_DATA_OPERATE_BEHAVIOR,
111 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
112 "ORG_PKG", ORGPKGNAME,
113 "FUNC", info.funcName,
114 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
115 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_LOAD_SA),
116 "STAGE_RES", info.stageRes,
117 "BIZ_STATE", info.bizState,
118 "HOST_NAME", info.hostName,
119 "ERROR_CODE", info.errCode);
120 }
121 if (res != ERR_OK) {
122 return false;
123 }
124 return true;
125 }
126
ReportSaCheckAuth(struct RadarInfo info)127 bool DpRadarHelper::ReportSaCheckAuth(struct RadarInfo info)
128 {
129 int res = ERR_OK;
130 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
131 res = HiSysEventWrite(
132 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
133 DP_DATA_OPERATE_BEHAVIOR,
134 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
135 "ORG_PKG", ORGPKGNAME,
136 "FUNC", info.funcName,
137 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
138 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_SA_CHACK_AUTH),
139 "STAGE_RES", info.stageRes,
140 "BIZ_STATE", info.bizState);
141 } else {
142 res = HiSysEventWrite(
143 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
144 DP_DATA_OPERATE_BEHAVIOR,
145 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
146 "ORG_PKG", ORGPKGNAME,
147 "FUNC", info.funcName,
148 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_SA),
149 "BIZ_STAGE", static_cast<int32_t>(GetSaStage::DP_SA_CHACK_AUTH),
150 "STAGE_RES", info.stageRes,
151 "BIZ_STATE", info.bizState,
152 "ERROR_CODE", info.errCode);
153 }
154 if (res != ERR_OK) {
155 return false;
156 }
157 return true;
158 }
159
ReportGetData(struct RadarInfo info)160 bool DpRadarHelper::ReportGetData(struct RadarInfo info)
161 {
162 int res = ERR_OK;
163 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
164 res = HiSysEventWrite(
165 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
166 DP_DATA_OPERATE_BEHAVIOR,
167 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
168 "ORG_PKG", ORGPKGNAME,
169 "FUNC", info.funcName,
170 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_DATA),
171 "BIZ_STAGE", static_cast<int32_t>(GetDataStage::DP_GET_DATA),
172 "STAGE_RES", info.stageRes,
173 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
174 "HOST_PKG", info.hostName,
175 "TO_CALL_PKG", info.toCallPkg,
176 "LOCAL_UDID", GetAnonyUdid(info.localUdid));
177 } else {
178 res = HiSysEventWrite(
179 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
180 DP_DATA_OPERATE_BEHAVIOR,
181 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
182 "ORG_PKG", ORGPKGNAME,
183 "FUNC", info.funcName,
184 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_GET_DATA),
185 "BIZ_STAGE", static_cast<int32_t>(GetDataStage::DP_GET_DATA),
186 "STAGE_RES", info.stageRes,
187 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
188 "LOCAL_UDID", GetAnonyUdid(info.localUdid),
189 "HOST_PKG", info.hostName,
190 "TO_CALL_PKG", info.toCallPkg,
191 "ERROR_CODE", info.errCode);
192 }
193 if (res != ERR_OK) {
194 return false;
195 }
196 return true;
197 }
198
ReportAddData(struct RadarInfo info)199 bool DpRadarHelper::ReportAddData(struct RadarInfo info)
200 {
201 int res = ERR_OK;
202 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
203 res = HiSysEventWrite(
204 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
205 DP_DATA_OPERATE_BEHAVIOR,
206 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
207 "ORG_PKG", ORGPKGNAME,
208 "FUNC", info.funcName,
209 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_ADD_DATA),
210 "BIZ_STAGE", static_cast<int32_t>(AddDataStage::DP_ADD_DATA),
211 "STAGE_RES", info.stageRes,
212 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
213 "LOCAL_UDID", GetAnonyUdid(info.localUdid),
214 "HOST_PKG", info.hostName,
215 "TO_CALL_PKG", info.toCallPkg);
216 } else {
217 res = HiSysEventWrite(
218 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
219 DP_DATA_OPERATE_BEHAVIOR,
220 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
221 "ORG_PKG", ORGPKGNAME,
222 "FUNC", info.funcName,
223 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_ADD_DATA),
224 "BIZ_STAGE", static_cast<int32_t>(AddDataStage::DP_ADD_DATA),
225 "STAGE_RES", info.stageRes,
226 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
227 "LOCAL_UDID", GetAnonyUdid(info.localUdid),
228 "HOST_PKG", info.hostName,
229 "TO_CALL_PKG", info.toCallPkg,
230 "ERROR_CODE", info.errCode);
231 }
232 if (res != ERR_OK) {
233 return false;
234 }
235 return true;
236 }
237
ReportDeleteData(struct RadarInfo info)238 bool DpRadarHelper::ReportDeleteData(struct RadarInfo info)
239 {
240 int res = ERR_OK;
241 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
242 res = HiSysEventWrite(
243 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
244 DP_DATA_OPERATE_BEHAVIOR,
245 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
246 "ORG_PKG", ORGPKGNAME,
247 "FUNC", info.funcName,
248 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELET_DATA),
249 "BIZ_STAGE", static_cast<int32_t>(static_cast<int32_t>(DelDataStage::DP_DELET_DATA)),
250 "STAGE_RES", info.stageRes,
251 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
252 "HOST_PKG", info.hostName,
253 "TO_CALL_PKG", info.toCallPkg,
254 "LOCAL_UDID", GetAnonyUdid(info.localUdid));
255 } else {
256 res = HiSysEventWrite(
257 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
258 DP_DATA_OPERATE_BEHAVIOR,
259 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
260 "ORG_PKG", ORGPKGNAME,
261 "FUNC", info.funcName,
262 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_DELET_DATA),
263 "BIZ_STAGE", static_cast<int32_t>(static_cast<int32_t>(DelDataStage::DP_DELET_DATA)),
264 "STAGE_RES", info.stageRes,
265 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
266 "LOCAL_UDID", GetAnonyUdid(info.localUdid),
267 "HOST_PKG", info.hostName,
268 "TO_CALL_PKG", info.toCallPkg,
269 "ERROR_CODE", info.errCode);
270 }
271 if (res != ERR_OK) {
272 return false;
273 }
274 return true;
275 }
276
ReportSubscribeData(struct RadarInfo info)277 bool DpRadarHelper::ReportSubscribeData(struct RadarInfo info)
278 {
279 int res = ERR_OK;
280 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
281 res = HiSysEventWrite(
282 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
283 DP_DATA_OPERATE_BEHAVIOR,
284 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
285 "ORG_PKG", ORGPKGNAME,
286 "FUNC", "SubscribeProfileEvents",
287 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SUBSCRIBE_DATA),
288 "BIZ_STAGE", static_cast<int32_t>(SubscribeDataStage::DP_SUBSCRIBE_DATA),
289 "STAGE_RES", info.stageRes,
290 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
291 "TO_CALL_PKG", kvNAME);
292 } else {
293 res = HiSysEventWrite(
294 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
295 DP_DATA_OPERATE_BEHAVIOR,
296 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
297 "ORG_PKG", ORGPKGNAME,
298 "FUNC", "SubscribeProfileEvents",
299 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SUBSCRIBE_DATA),
300 "BIZ_STAGE", static_cast<int32_t>(SubscribeDataStage::DP_SUBSCRIBE_DATA),
301 "STAGE_RES", info.stageRes,
302 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
303 "TO_CALL_PKG", kvNAME,
304 "ERROR_CODE", info.errCode);
305 }
306 if (res != ERR_OK) {
307 return false;
308 }
309 return true;
310 }
311
ReportNotifyDataChange(struct RadarInfo info)312 bool DpRadarHelper::ReportNotifyDataChange(struct RadarInfo info)
313 {
314 int32_t res = HiSysEventWrite(
315 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
316 DP_DATA_OPERATE_BEHAVIOR,
317 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
318 "ORG_PKG", ORGPKGNAME,
319 "FUNC", info.funcName,
320 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SUBSCRIBE_DATA),
321 "BIZ_STAGE", static_cast<int32_t>(SubscribeDataStage::DP_RECIVE_DATA_CHANGE),
322 "STAGE_RES", info.stageRes,
323 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END));
324 if (res != ERR_OK) {
325 return false;
326 }
327 return true;
328 }
329
ReportUnsbscribeData(struct RadarInfo info)330 bool DpRadarHelper::ReportUnsbscribeData(struct RadarInfo info)
331 {
332 int res = ERR_OK;
333 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
334 res = HiSysEventWrite(
335 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
336 DP_DATA_OPERATE_BEHAVIOR,
337 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
338 "ORG_PKG", ORGPKGNAME,
339 "FUNC", info.funcName,
340 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_UNSUBSCRIBE_DATA),
341 "BIZ_STAGE", static_cast<int32_t>(UnSubscribeDataStage::DP_UNSUBSCRIBE_DATA),
342 "STAGE_RES", info.stageRes,
343 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
344 "HOST_PKG", info.hostName,
345 "TO_CALL_PKG", info.toCallPkg);
346 } else {
347 res = HiSysEventWrite(
348 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
349 DP_DATA_OPERATE_BEHAVIOR,
350 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
351 "ORG_PKG", ORGPKGNAME,
352 "FUNC", info.funcName,
353 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_UNSUBSCRIBE_DATA),
354 "BIZ_STAGE", static_cast<int32_t>(UnSubscribeDataStage::DP_UNSUBSCRIBE_DATA),
355 "STAGE_RES", info.stageRes,
356 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
357 "HOST_PKG", info.hostName,
358 "TO_CALL_PKG", info.toCallPkg,
359 "ERROR_CODE", info.errCode);
360 }
361 if (res != ERR_OK) {
362 return false;
363 }
364 return true;
365 }
366
ReportSyncData(struct RadarInfo info)367 bool DpRadarHelper::ReportSyncData(struct RadarInfo info)
368 {
369 int res = ERR_OK;
370 if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
371 res = HiSysEventWrite(
372 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
373 DP_DATA_OPERATE_BEHAVIOR,
374 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
375 "ORG_PKG", ORGPKGNAME,
376 "FUNC", "SyncDeviceProfile",
377 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SYNC_DATA),
378 "BIZ_STAGE", static_cast<int32_t>(SyncDataStage::DP_SYNC_DATA),
379 "STAGE_RES", info.stageRes,
380 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_START),
381 "HOST_PKG", info.hostName,
382 "PEER_UDID", GetAnonyUdid(info.peerUdid),
383 "TO_CALL_PKG", kvNAME);
384 } else {
385 res = HiSysEventWrite(
386 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
387 DP_DATA_OPERATE_BEHAVIOR,
388 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
389 "ORG_PKG", ORGPKGNAME,
390 "FUNC", "SyncDeviceProfile",
391 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SYNC_DATA),
392 "BIZ_STAGE", static_cast<int32_t>(SyncDataStage::DP_SYNC_DATA),
393 "STAGE_RES", info.stageRes,
394 "BIZ_STATE", static_cast<int32_t>(BizState::BIZ_STATE_END),
395 "HOST_PKG", info.hostName,
396 "PEER_UDID", GetAnonyUdid(info.peerUdid),
397 "TO_CALL_PKG", kvNAME,
398 "ERROR_CODE", info.errCode);
399 }
400 if (res != ERR_OK) {
401 return false;
402 }
403 return true;
404 }
405
ReportSyncDataCb(struct RadarInfo info)406 bool DpRadarHelper::ReportSyncDataCb(struct RadarInfo info)
407 {
408 int32_t res = HiSysEventWrite(
409 OHOS::HiviewDFX::HiSysEvent::Domain::DEVICE_PROFILE,
410 DP_DATA_OPERATE_BEHAVIOR,
411 HiviewDFX::HiSysEvent::EventType::BEHAVIOR,
412 "ORG_PKG", ORGPKGNAME,
413 "FUNC", info.funcName,
414 "BIZ_SCENE", static_cast<int32_t>(BizScene::DP_SYNC_DATA),
415 "BIZ_STAGE", static_cast<int32_t>(SyncDataStage::DP_RECIVE_SYNC_CALLBACK),
416 "STAGE_RES", info.stageRes,
417 "BIZ_STATE", info.bizState,
418 "LOCAL_UDID", GetAnonyUdid(info.localUdid));
419 if (res != ERR_OK) {
420 return false;
421 }
422 return true;
423 }
424
GetHostNameByServiceId(std::string serviceId)425 std::string DpRadarHelper::GetHostNameByServiceId(std::string serviceId)
426 {
427 return hostNameMap_[serviceId];
428 }
429
GetStringUdidList(std::list<std::string> & udidList)430 std::string DpRadarHelper::GetStringUdidList(std::list<std::string> &udidList)
431 {
432 std::string ret = "";
433 for (auto it = udidList.begin(); it != udidList.end(); it++) {
434 if ((*it).compare(udidList.back()) == 0) {
435 ret += GetAnonyUdid(*it);
436 } else {
437 ret += GetAnonyUdid(*it);
438 ret += ",";
439 }
440 }
441 return ret;
442 }
443
GetErrorCode(int32_t errCode,int32_t module)444 int32_t DpRadarHelper::GetErrorCode(int32_t errCode, int32_t module)
445 {
446 return ErrCodeOffset(SUBSYS_DISTRIBUTEDHARDWARE_DP, module) + errCode;
447 }
448
GetAnonyUdid(std::string udid)449 std::string DpRadarHelper::GetAnonyUdid(std::string udid)
450 {
451 if (udid.empty() || udid.length() < INVALID_UDID_LENGTH) {
452 return "";
453 }
454 return udid.substr(0, SUBSTR_UDID_LENGTH) + "**" + udid.substr(udid.length() - SUBSTR_UDID_LENGTH);
455 }
456 } // namespace DeviceProfile
457 } // namespace OHOS