1 /*
2  * Copyright (c) 2022-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 #include "dh_utils_hisysevent.h"
16 
17 #include <unordered_map>
18 
19 #include "distributed_hardware_errno.h"
20 #include "distributed_hardware_log.h"
21 
22 namespace OHOS {
23 namespace DistributedHardware {
HiSysEventWriteMsg(const std::string & status,const OHOS::HiviewDFX::HiSysEvent::EventType eventType,const std::string & msg)24 void HiSysEventWriteMsg(const std::string &status, const OHOS::HiviewDFX::HiSysEvent::EventType eventType,
25     const std::string &msg)
26 {
27     int32_t res = HiSysEventWrite(
28         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_HARDWARE_FWK,
29         status.c_str(),
30         eventType,
31         "MSG", msg.c_str());
32     if (res != DH_FWK_SUCCESS) {
33         DHLOGE("Write HiSysEvent error, res:%{public}d", res);
34     }
35 }
36 
HiSysEventWriteErrCodeMsg(const std::string & status,const OHOS::HiviewDFX::HiSysEvent::EventType eventType,int32_t errCode,const std::string & msg)37 void HiSysEventWriteErrCodeMsg(const std::string &status, const OHOS::HiviewDFX::HiSysEvent::EventType eventType,
38     int32_t errCode, const std::string &msg)
39 {
40     int32_t res = HiSysEventWrite(
41         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_HARDWARE_FWK,
42         status.c_str(),
43         eventType,
44         "ERR_CODE", errCode,
45         "ERR_MSG", msg.c_str());
46     if (res != DH_FWK_SUCCESS) {
47         DHLOGE("Write HiSysEvent error, res:%{public}d", res);
48     }
49 }
50 
HiSysEventWriteReleaseMsg(const std::string & status,const OHOS::HiviewDFX::HiSysEvent::EventType eventType,const DHType dhType,int32_t errCode,const std::string & msg)51 void HiSysEventWriteReleaseMsg(const std::string &status, const OHOS::HiviewDFX::HiSysEvent::EventType eventType,
52     const DHType dhType, int32_t errCode, const std::string &msg)
53 {
54     std::string dhTypeStr = "UNKNOWN";
55     auto it = DHTypeStrMap.find(dhType);
56     if (it != DHTypeStrMap.end()) {
57         dhTypeStr = it->second;
58     }
59 
60     int32_t res = HiSysEventWrite(
61         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_HARDWARE_FWK,
62         status.c_str(),
63         eventType,
64         "DHTYPE", dhTypeStr.c_str(),
65         "ERR_CODE", errCode,
66         "ERR_MSG", msg.c_str());
67     if (res != DH_FWK_SUCCESS) {
68         DHLOGE("Write HiSysEvent error, res:%{public}d", res);
69     }
70 }
71 
HiSysEventWriteCompOfflineMsg(const std::string & status,const OHOS::HiviewDFX::HiSysEvent::EventType eventType,const std::string & anonyNetworkId,const std::string & msg)72 void HiSysEventWriteCompOfflineMsg(const std::string &status, const OHOS::HiviewDFX::HiSysEvent::EventType eventType,
73     const std::string &anonyNetworkId, const std::string &msg)
74 {
75     int32_t res = HiSysEventWrite(
76         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_HARDWARE_FWK,
77         status.c_str(),
78         eventType,
79         "NETWORKID", anonyNetworkId.c_str(),
80         "MSG", msg.c_str());
81     if (res != DH_FWK_SUCCESS) {
82         DHLOGE("Write HiSysEvent error, res:%{public}d", res);
83     }
84 }
85 
HiSysEventWriteCompMgrFailedMsg(const std::string & status,const OHOS::HiviewDFX::HiSysEvent::EventType eventType,const std::string & anonyDHId,int32_t errCode,const std::string & msg)86 void HiSysEventWriteCompMgrFailedMsg(const std::string &status, const OHOS::HiviewDFX::HiSysEvent::EventType eventType,
87     const std::string &anonyDHId, int32_t errCode, const std::string &msg)
88 {
89     int32_t res = HiSysEventWrite(
90         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_HARDWARE_FWK,
91         status.c_str(),
92         eventType,
93         "DHID", anonyDHId.c_str(),
94         "ERR_CODE", errCode,
95         "ERR_MSG", msg.c_str());
96     if (res != DH_FWK_SUCCESS) {
97         DHLOGE("Write HiSysEvent error, res:%{public}d", res);
98     }
99 }
100 } // namespace DistributedHardware
101 } // namespace OHOS