1 /*
2 * Copyright (c) 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 LNN_EVENT_CONVERTER_H
17 #define LNN_EVENT_CONVERTER_H
18
19 #include "softbus_event_converter.h"
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 #define LNN_ASSIGNER(type, fieldName, field) \
26 static inline bool LnnAssigner##fieldName( \
27 const char *eventName, HiSysEventParamType paramType, SoftbusEventForm *form, HiSysEventParam *param) \
28 { \
29 if (Assigner##type(form->lnnExtra->field, ¶m) && \
30 CopyString(param->name, eventName, MAX_LENGTH_OF_PARAM_NAME)) { \
31 param->t = paramType; \
32 return true; \
33 } \
34 return false; \
35 }
36
37 LNN_ASSIGNER(Errcode, Result, result)
38 LNN_ASSIGNER(Errcode, Errcode, errcode)
39 LNN_ASSIGNER(Errcode, AuthId, authId)
40 LNN_ASSIGNER(Int32, DiscServerType, discServerType)
41 LNN_ASSIGNER(Int32, GearCycle, gearCycle)
42 LNN_ASSIGNER(Int32, GearDuration, gearDuration)
43 LNN_ASSIGNER(Int32, ConnectionId, connectionId)
44 LNN_ASSIGNER(Int32, AuthLinkType, authLinkType)
45 LNN_ASSIGNER(Int32, AuthRequestId, authRequestId)
46 LNN_ASSIGNER(Int32, AuthCostTime, authCostTime)
47 LNN_ASSIGNER(Int32, LnnType, lnnType)
48 LNN_ASSIGNER(Int32, OnlineNum, onlineNum)
49 LNN_ASSIGNER(Int32, PeerDeviceAbility, peerDeviceAbility)
50 LNN_ASSIGNER(Int32, OnlineType, onlineType)
51 LNN_ASSIGNER(Errcode, OsType, osType)
52 LNN_ASSIGNER(Errcode, ConnOnlineReason, connOnlineReason)
53 LNN_ASSIGNER(Int32, LaneId, laneId)
54 LNN_ASSIGNER(Int32, ChanReqId, chanReqId)
55 LNN_ASSIGNER(Int32, ConnReqId, connReqId)
56 LNN_ASSIGNER(Int32, Strategy, strategy)
57 LNN_ASSIGNER(Int32, LaneLinkType, laneLinkType)
58 LNN_ASSIGNER(Int32, HmlChannelId, hmlChannelId)
59 LNN_ASSIGNER(Int32, P2pChannelId, p2pChannelId)
60 LNN_ASSIGNER(Int32, StaChannelId, staChannelId)
61 LNN_ASSIGNER(Int32, ApChannelId, apChannelId)
62 LNN_ASSIGNER(String, PeerDeviceInfo, peerDeviceInfo)
63 LNN_ASSIGNER(AnonymizeString, PeerIp, peerIp)
64 LNN_ASSIGNER(AnonymizeString, PeerBrMac, peerBrMac)
65 LNN_ASSIGNER(AnonymizeString, PeerBleMac, peerBleMac)
66 LNN_ASSIGNER(AnonymizeString, PeerWifiMac, peerWifiMac)
67 LNN_ASSIGNER(String, PeerPort, peerPort)
68 LNN_ASSIGNER(AnonymizeString, PeerUdid, peerUdid)
69 LNN_ASSIGNER(AnonymizeString, PeerNetworkId, peerNetworkId)
70 LNN_ASSIGNER(String, LocalDeviceType, localDeviceType)
71 LNN_ASSIGNER(String, PeerDeviceType, peerDeviceType)
72 LNN_ASSIGNER(AnonymizeString, LocalUdidHash, localUdidHash)
73 LNN_ASSIGNER(AnonymizeString, PeerUdidHash, peerUdidHash)
74 LNN_ASSIGNER(String, CallerPkg, callerPkg)
75 LNN_ASSIGNER(String, CalleePkg, calleePkg)
76
77 #define LNN_ASSIGNER_SIZE 39 // Size of g_connAssigners
78 static const HiSysEventParamAssigner g_lnnAssigners[] = {
79 { "STAGE_RES", HISYSEVENT_INT32, LnnAssignerResult },
80 { "ERROR_CODE", HISYSEVENT_INT32, LnnAssignerErrcode },
81 { "AUTH_ID", HISYSEVENT_INT32, LnnAssignerAuthId },
82 { "DISC_SERVER_TYPE", HISYSEVENT_INT32, LnnAssignerDiscServerType },
83 { "GEAR_CYCLE", HISYSEVENT_INT32, LnnAssignerGearCycle },
84 { "GEAR_DURATION", HISYSEVENT_INT32, LnnAssignerGearDuration },
85 { "CONN_ID", HISYSEVENT_INT32, LnnAssignerConnectionId },
86 { "AUTH_LINK_TYPE", HISYSEVENT_INT32, LnnAssignerAuthLinkType },
87 { "AUTH_REQUEST_ID", HISYSEVENT_INT32, LnnAssignerAuthRequestId },
88 { "AUTH_COST_TIME", HISYSEVENT_INT32, LnnAssignerAuthCostTime },
89 { "LNN_TYPE", HISYSEVENT_INT32, LnnAssignerLnnType },
90 { "ONLINE_NUM", HISYSEVENT_INT32, LnnAssignerOnlineNum },
91 { "PEER_DEV_ABILITY", HISYSEVENT_INT32, LnnAssignerPeerDeviceAbility},
92 { "ONLINE_TYPE", HISYSEVENT_INT32, LnnAssignerOnlineType },
93 { "OS_TYPE", HISYSEVENT_INT32, LnnAssignerOsType },
94 { "CONN_ONLINE_REAS", HISYSEVENT_INT32, LnnAssignerConnOnlineReason },
95 { "LANE_ID", HISYSEVENT_INT32, LnnAssignerLaneId },
96 { "CHAN_REQ_ID", HISYSEVENT_INT32, LnnAssignerChanReqId },
97 { "CONN_REQ_ID", HISYSEVENT_INT32, LnnAssignerConnReqId },
98 { "STRATEGY_FOR_LNN_BLE", HISYSEVENT_INT32, LnnAssignerStrategy },
99 { "LANE_LINK_TYPE", HISYSEVENT_INT32, LnnAssignerLaneLinkType },
100 { "HML_CHANNEL_ID", HISYSEVENT_INT32, LnnAssignerHmlChannelId },
101 { "P2P_CHANNEL_ID", HISYSEVENT_INT32, LnnAssignerP2pChannelId },
102 { "STA_CHANNEL_ID", HISYSEVENT_INT32, LnnAssignerStaChannelId },
103 { "AP_CHANNEL_ID", HISYSEVENT_INT32, LnnAssignerApChannelId },
104 { "PEER_DEV_INFO", HISYSEVENT_STRING, LnnAssignerPeerDeviceInfo },
105 { "PEER_IP", HISYSEVENT_STRING, LnnAssignerPeerIp },
106 { "PEER_BR_MAC", HISYSEVENT_STRING, LnnAssignerPeerBrMac },
107 { "PEER_BLE_MAC", HISYSEVENT_STRING, LnnAssignerPeerBleMac },
108 { "PEER_WIFI_MAC", HISYSEVENT_STRING, LnnAssignerPeerWifiMac },
109 { "PEER_PORT", HISYSEVENT_STRING, LnnAssignerPeerPort },
110 { "PEER_UDID", HISYSEVENT_STRING, LnnAssignerPeerUdid },
111 { "PEER_NET_ID", HISYSEVENT_STRING, LnnAssignerPeerNetworkId },
112 { "LOCAL_DEV_TYPE", HISYSEVENT_STRING, LnnAssignerLocalDeviceType },
113 { "PEER_DEV_TYPE", HISYSEVENT_STRING, LnnAssignerPeerDeviceType },
114 { "LOCAL_UDID_HASH", HISYSEVENT_STRING, LnnAssignerLocalUdidHash },
115 { "PEER_UDID_HASH", HISYSEVENT_STRING, LnnAssignerPeerUdidHash },
116 { "HOST_PKG", HISYSEVENT_STRING, LnnAssignerCallerPkg },
117 { "TO_CALL_PKG", HISYSEVENT_STRING, LnnAssignerCalleePkg },
118 // Modification Note: remember updating LNN_ASSIGNER_SIZE
119 };
120
121 #define LNN_ALARM_ASSIGNER(type, fieldName, field) \
122 static inline bool LnnAssigner##fieldName( \
123 const char *eventName, HiSysEventParamType paramType, SoftbusEventForm *form, HiSysEventParam *param) \
124 { \
125 if (Assigner##type(form->lnnAlarmExtra->field, ¶m) && \
126 CopyString(param->name, eventName, MAX_LENGTH_OF_PARAM_NAME)) { \
127 param->t = paramType; \
128 return true; \
129 } \
130 return false; \
131 }
132
133 LNN_ALARM_ASSIGNER(Errcode, AlarmResult, result)
134
135 #define LNN_ALARM_ASSIGNER_SIZE 1 // Size of g_lnnAlarmAssigners
136 static const HiSysEventParamAssigner g_lnnAlarmAssigners[] = {
137 { "STAGE_RES", HISYSEVENT_INT32, LnnAssignerAlarmResult },
138 // Modification Note: remember updating LNN_ALARM_ASSIGNER_SIZE
139 };
140
ConvertLnnForm2Param(HiSysEventParam params[],size_t size,SoftbusEventForm * form)141 static inline size_t ConvertLnnForm2Param(HiSysEventParam params[], size_t size, SoftbusEventForm *form)
142 {
143 size_t validSize = 0;
144 if (form == NULL || form->lnnExtra == NULL) {
145 return validSize;
146 }
147 for (size_t i = 0; i < size; ++i) {
148 HiSysEventParamAssigner assigner = g_lnnAssigners[i];
149 if (assigner.Assign(assigner.name, assigner.type, form, ¶ms[validSize])) {
150 ++validSize;
151 }
152 }
153 return validSize;
154 }
155
ConvertLnnAlarmForm2Param(HiSysEventParam params[],size_t size,SoftbusEventForm * form)156 static inline size_t ConvertLnnAlarmForm2Param(HiSysEventParam params[], size_t size, SoftbusEventForm *form)
157 {
158 size_t validSize = 0;
159 if (form == NULL || form->lnnAlarmExtra == NULL) {
160 return validSize;
161 }
162 for (size_t i = 0; i < size; ++i) {
163 HiSysEventParamAssigner assigner = g_lnnAlarmAssigners[i];
164 if (assigner.Assign(assigner.name, assigner.type, form, ¶ms[validSize])) {
165 ++validSize;
166 }
167 }
168 return validSize;
169 }
170
171 #ifdef __cplusplus
172 }
173 #endif /* __cplusplus */
174 #endif // LNN_EVENT_CONVERTER_H
175