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 #include "ohos_adapter/bridge/ark_hisysevent_adapter_wrapper.h"
17 
18 namespace OHOS::ArkWeb {
19 
ArkHiSysEventAdapterWrapper(ArkWebRefPtr<ArkHiSysEventAdapter> ref)20 ArkHiSysEventAdapterWrapper::ArkHiSysEventAdapterWrapper(ArkWebRefPtr<ArkHiSysEventAdapter> ref) : ctocpp_(ref) {}
21 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string> & data)22 int ArkHiSysEventAdapterWrapper::Write(
23     const std::string& eventName, ArkEventType type, const std::tuple<const std::string, const std::string>& data)
24 {
25     if (!ctocpp_) {
26         return -1;
27     }
28     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
29     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
30     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
31 
32     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, ark_value1);
33 
34     ArkWebStringStructRelease(ark_event_name);
35     ArkWebStringStructRelease(ark_key1);
36     ArkWebStringStructRelease(ark_value1);
37 
38     return result;
39 }
40 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string,const std::string,const std::string> & data)41 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
42     const std::tuple<const std::string, const std::string, const std::string, const std::string>& data)
43 {
44     if (!ctocpp_) {
45         return -1;
46     }
47     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
48     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
49     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
50     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
51     ArkWebString ark_value2 = ArkWebStringClassToStruct(std::get<3>(data));
52 
53     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, ark_value1, ark_key2, ark_value2);
54 
55     ArkWebStringStructRelease(ark_event_name);
56     ArkWebStringStructRelease(ark_key1);
57     ArkWebStringStructRelease(ark_value1);
58     ArkWebStringStructRelease(ark_key2);
59     ArkWebStringStructRelease(ark_value2);
60 
61     return result;
62 }
63 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string,const std::string,const std::string,const std::string,const std::string> & data)64 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
65     const std::tuple<const std::string, const std::string, const std::string, const std::string, const std::string,
66         const std::string>& data)
67 {
68     if (!ctocpp_) {
69         return -1;
70     }
71     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
72     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
73     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
74     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
75     ArkWebString ark_value2 = ArkWebStringClassToStruct(std::get<3>(data));
76     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
77     ArkWebString ark_value3 = ArkWebStringClassToStruct(std::get<5>(data));
78 
79     int result = ctocpp_->Write(
80         ark_event_name, (uint32_t)type, ark_key1, ark_value1, ark_key2, ark_value2, ark_key3, ark_value3);
81 
82     ArkWebStringStructRelease(ark_event_name);
83     ArkWebStringStructRelease(ark_key1);
84     ArkWebStringStructRelease(ark_value1);
85     ArkWebStringStructRelease(ark_key2);
86     ArkWebStringStructRelease(ark_value2);
87     ArkWebStringStructRelease(ark_key3);
88     ArkWebStringStructRelease(ark_value3);
89 
90     return result;
91 }
92 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string> & data)93 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
94     const std::tuple<const std::string, const std::string, const std::string, const std::string, const std::string,
95         const std::string, const std::string, const std::string>& data)
96 {
97     if (!ctocpp_) {
98         return -1;
99     }
100     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
101     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
102     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
103     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
104     ArkWebString ark_value2 = ArkWebStringClassToStruct(std::get<3>(data));
105     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
106     ArkWebString ark_value3 = ArkWebStringClassToStruct(std::get<5>(data));
107     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
108     ArkWebString ark_value4 = ArkWebStringClassToStruct(std::get<7>(data));
109 
110     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, ark_value1, ark_key2, ark_value2, ark_key3,
111         ark_value3, ark_key4, ark_value4);
112 
113     ArkWebStringStructRelease(ark_event_name);
114     ArkWebStringStructRelease(ark_key1);
115     ArkWebStringStructRelease(ark_value1);
116     ArkWebStringStructRelease(ark_key2);
117     ArkWebStringStructRelease(ark_value2);
118     ArkWebStringStructRelease(ark_key3);
119     ArkWebStringStructRelease(ark_value3);
120     ArkWebStringStructRelease(ark_key4);
121     ArkWebStringStructRelease(ark_value4);
122 
123     return result;
124 }
125 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string> & data)126 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
127     const std::tuple<const std::string, const std::string, const std::string, const std::string, const std::string,
128         const std::string, const std::string, const std::string, const std::string, const std::string>& data)
129 {
130     if (!ctocpp_) {
131         return -1;
132     }
133     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
134     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
135     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
136     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
137     ArkWebString ark_value2 = ArkWebStringClassToStruct(std::get<3>(data));
138     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
139     ArkWebString ark_value3 = ArkWebStringClassToStruct(std::get<5>(data));
140     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
141     ArkWebString ark_value4 = ArkWebStringClassToStruct(std::get<7>(data));
142     ArkWebString ark_key5 = ArkWebStringClassToStruct(std::get<8>(data));
143     ArkWebString ark_value5 = ArkWebStringClassToStruct(std::get<9>(data));
144 
145     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, ark_value1, ark_key2, ark_value2, ark_key3,
146         ark_value3, ark_key4, ark_value4, ark_key5, ark_value5);
147 
148     ArkWebStringStructRelease(ark_event_name);
149     ArkWebStringStructRelease(ark_key1);
150     ArkWebStringStructRelease(ark_value1);
151     ArkWebStringStructRelease(ark_key2);
152     ArkWebStringStructRelease(ark_value2);
153     ArkWebStringStructRelease(ark_key3);
154     ArkWebStringStructRelease(ark_value3);
155     ArkWebStringStructRelease(ark_key4);
156     ArkWebStringStructRelease(ark_value4);
157     ArkWebStringStructRelease(ark_key5);
158     ArkWebStringStructRelease(ark_value5);
159 
160     return result;
161 }
162 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string> & data)163 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
164     const std::tuple<const std::string, const std::string, const std::string, const std::string, const std::string,
165         const std::string, const std::string, const std::string, const std::string, const std::string,
166         const std::string, const std::string>& data)
167 {
168     if (!ctocpp_) {
169         return -1;
170     }
171     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
172     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
173     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
174     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
175     ArkWebString ark_value2 = ArkWebStringClassToStruct(std::get<3>(data));
176     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
177     ArkWebString ark_value3 = ArkWebStringClassToStruct(std::get<5>(data));
178     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
179     ArkWebString ark_value4 = ArkWebStringClassToStruct(std::get<7>(data));
180     ArkWebString ark_key5 = ArkWebStringClassToStruct(std::get<8>(data));
181     ArkWebString ark_value5 = ArkWebStringClassToStruct(std::get<9>(data));
182     ArkWebString ark_key6 = ArkWebStringClassToStruct(std::get<10>(data));
183     ArkWebString ark_value6 = ArkWebStringClassToStruct(std::get<11>(data));
184 
185     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, ark_value1, ark_key2, ark_value2, ark_key3,
186         ark_value3, ark_key4, ark_value4, ark_key5, ark_value5, ark_key6, ark_value6);
187 
188     ArkWebStringStructRelease(ark_event_name);
189     ArkWebStringStructRelease(ark_key1);
190     ArkWebStringStructRelease(ark_value1);
191     ArkWebStringStructRelease(ark_key2);
192     ArkWebStringStructRelease(ark_value2);
193     ArkWebStringStructRelease(ark_key3);
194     ArkWebStringStructRelease(ark_value3);
195     ArkWebStringStructRelease(ark_key4);
196     ArkWebStringStructRelease(ark_value4);
197     ArkWebStringStructRelease(ark_key5);
198     ArkWebStringStructRelease(ark_value5);
199     ArkWebStringStructRelease(ark_key6);
200     ArkWebStringStructRelease(ark_value6);
201 
202     return result;
203 }
204 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const int64_t,const std::string,const int,const std::string,const std::vector<uint16_t>,const std::string,const int> & data)205 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
206     const std::tuple<const std::string, const int64_t, const std::string, const int, const std::string,
207         const std::vector<uint16_t>, const std::string, const int>& data)
208 {
209     if (!ctocpp_) {
210         return -1;
211     }
212     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
213     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
214     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
215     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
216     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
217     ArkWebUint16Vector ark_value3 = ArkWebBasicVectorClassToStruct<uint16_t, ArkWebUint16Vector>(std::get<5>(data));
218 
219     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, std::get<1>(data), ark_key2,
220         std::get<3>(data), ark_key3, ark_value3, ark_key4, std::get<7>(data));
221 
222     ArkWebStringStructRelease(ark_event_name);
223     ArkWebStringStructRelease(ark_key1);
224     ArkWebStringStructRelease(ark_key2);
225     ArkWebStringStructRelease(ark_key3);
226     ArkWebStringStructRelease(ark_key4);
227     ArkWebBasicVectorStructRelease(ark_value3);
228 
229     return result;
230 }
231 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const int64_t,const std::string,const int64_t,const std::string,const int,const std::string,const int,const std::string,const int64_t,const std::string,const int> & data)232 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
233     const std::tuple<const std::string, const int64_t, const std::string, const int64_t, const std::string, const int,
234         const std::string, const int, const std::string, const int64_t, const std::string, const int>& data)
235 {
236     if (!ctocpp_) {
237         return -1;
238     }
239     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
240     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
241     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
242     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
243     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
244     ArkWebString ark_key5 = ArkWebStringClassToStruct(std::get<8>(data));
245     ArkWebString ark_key6 = ArkWebStringClassToStruct(std::get<10>(data));
246 
247     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, std::get<1>(data), ark_key2,
248         std::get<3>(data), ark_key3, std::get<5>(data), ark_key4, std::get<7>(data), ark_key5, std::get<9>(data),
249         ark_key6, std::get<11>(data));
250 
251     ArkWebStringStructRelease(ark_event_name);
252     ArkWebStringStructRelease(ark_key1);
253     ArkWebStringStructRelease(ark_key2);
254     ArkWebStringStructRelease(ark_key3);
255     ArkWebStringStructRelease(ark_key4);
256     ArkWebStringStructRelease(ark_key5);
257     ArkWebStringStructRelease(ark_key6);
258 
259     return result;
260 }
261 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const int64_t,const std::string,const int64_t,const std::string,const uint32_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t,const std::string,const int64_t> & data)262 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
263     const std::tuple<const std::string, const int64_t, const std::string, const int64_t, const std::string,
264         const uint32_t, const std::string, const int64_t, const std::string, const int64_t, const std::string,
265         const int64_t, const std::string, const int64_t, const std::string, const int64_t, const std::string,
266         const int64_t, const std::string, const int64_t, const std::string, const int64_t, const std::string,
267         const int64_t, const std::string, const int64_t, const std::string, const int64_t, const std::string,
268         const int64_t, const std::string, const int64_t, const std::string, const int64_t, const std::string,
269         const int64_t, const std::string, const int64_t, const std::string, const int64_t, const std::string,
270         const int64_t, const std::string, const int64_t, const std::string, const int64_t>& data)
271 {
272     if (!ctocpp_) {
273         return -1;
274     }
275     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
276     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
277     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
278     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
279     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
280     ArkWebString ark_key5 = ArkWebStringClassToStruct(std::get<8>(data));
281     ArkWebString ark_key6 = ArkWebStringClassToStruct(std::get<10>(data));
282     ArkWebString ark_key7 = ArkWebStringClassToStruct(std::get<12>(data));
283     ArkWebString ark_key8 = ArkWebStringClassToStruct(std::get<14>(data));
284     ArkWebString ark_key9 = ArkWebStringClassToStruct(std::get<16>(data));
285     ArkWebString ark_key10 = ArkWebStringClassToStruct(std::get<18>(data));
286     ArkWebString ark_key11 = ArkWebStringClassToStruct(std::get<20>(data));
287     ArkWebString ark_key12 = ArkWebStringClassToStruct(std::get<22>(data));
288     ArkWebString ark_key13 = ArkWebStringClassToStruct(std::get<24>(data));
289     ArkWebString ark_key14 = ArkWebStringClassToStruct(std::get<26>(data));
290     ArkWebString ark_key15 = ArkWebStringClassToStruct(std::get<28>(data));
291     ArkWebString ark_key16 = ArkWebStringClassToStruct(std::get<30>(data));
292     ArkWebString ark_key17 = ArkWebStringClassToStruct(std::get<32>(data));
293     ArkWebString ark_key18 = ArkWebStringClassToStruct(std::get<34>(data));
294     ArkWebString ark_key19 = ArkWebStringClassToStruct(std::get<36>(data));
295     ArkWebString ark_key20 = ArkWebStringClassToStruct(std::get<38>(data));
296     ArkWebString ark_key21 = ArkWebStringClassToStruct(std::get<40>(data));
297     ArkWebString ark_key22 = ArkWebStringClassToStruct(std::get<42>(data));
298     ArkWebString ark_key23 = ArkWebStringClassToStruct(std::get<44>(data));
299 
300     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, std::get<1>(data), ark_key2,
301         std::get<3>(data), ark_key3, std::get<5>(data), ark_key4, std::get<7>(data), ark_key5, std::get<9>(data),
302         ark_key6, std::get<11>(data), ark_key7, std::get<13>(data), ark_key8, std::get<15>(data), ark_key9,
303         std::get<17>(data), ark_key10, std::get<19>(data), ark_key11, std::get<21>(data), ark_key12, std::get<23>(data),
304         ark_key13, std::get<25>(data), ark_key14, std::get<27>(data), ark_key15, std::get<29>(data), ark_key16,
305         std::get<31>(data), ark_key17, std::get<33>(data), ark_key18, std::get<35>(data), ark_key19, std::get<37>(data),
306         ark_key20, std::get<39>(data), ark_key21, std::get<41>(data), ark_key22, std::get<43>(data), ark_key23,
307         std::get<45>(data));
308 
309     ArkWebStringStructRelease(ark_event_name);
310     ArkWebStringStructRelease(ark_key1);
311     ArkWebStringStructRelease(ark_key2);
312     ArkWebStringStructRelease(ark_key3);
313     ArkWebStringStructRelease(ark_key4);
314     ArkWebStringStructRelease(ark_key5);
315     ArkWebStringStructRelease(ark_key6);
316     ArkWebStringStructRelease(ark_key7);
317     ArkWebStringStructRelease(ark_key8);
318     ArkWebStringStructRelease(ark_key9);
319     ArkWebStringStructRelease(ark_key10);
320     ArkWebStringStructRelease(ark_key11);
321     ArkWebStringStructRelease(ark_key12);
322     ArkWebStringStructRelease(ark_key13);
323     ArkWebStringStructRelease(ark_key14);
324     ArkWebStringStructRelease(ark_key15);
325     ArkWebStringStructRelease(ark_key16);
326     ArkWebStringStructRelease(ark_key17);
327     ArkWebStringStructRelease(ark_key18);
328     ArkWebStringStructRelease(ark_key19);
329     ArkWebStringStructRelease(ark_key20);
330     ArkWebStringStructRelease(ark_key21);
331     ArkWebStringStructRelease(ark_key22);
332     ArkWebStringStructRelease(ark_key23);
333 
334     return result;
335 }
336 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string> & data)337 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
338     const std::tuple<const std::string, const std::string, const std::string, const std::string, const std::string,
339         const std::string, const std::string, const std::string, const std::string, const std::string,
340         const std::string, const std::string, const std::string, const std::string>& data)
341 {
342     if (!ctocpp_) {
343         return -1;
344     }
345     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
346     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
347     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
348     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
349     ArkWebString ark_value2 = ArkWebStringClassToStruct(std::get<3>(data));
350     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
351     ArkWebString ark_value3 = ArkWebStringClassToStruct(std::get<5>(data));
352     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
353     ArkWebString ark_value4 = ArkWebStringClassToStruct(std::get<7>(data));
354     ArkWebString ark_key5 = ArkWebStringClassToStruct(std::get<8>(data));
355     ArkWebString ark_value5 = ArkWebStringClassToStruct(std::get<9>(data));
356     ArkWebString ark_key6 = ArkWebStringClassToStruct(std::get<10>(data));
357     ArkWebString ark_value6 = ArkWebStringClassToStruct(std::get<11>(data));
358     ArkWebString ark_key7 = ArkWebStringClassToStruct(std::get<12>(data));
359     ArkWebString ark_value7 = ArkWebStringClassToStruct(std::get<13>(data));
360 
361     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, ark_value1, ark_key2, ark_value2, ark_key3,
362         ark_value3, ark_key4, ark_value4, ark_key5, ark_value5, ark_key6, ark_value6, ark_key7, ark_value7);
363 
364     ArkWebStringStructRelease(ark_event_name);
365     ArkWebStringStructRelease(ark_key1);
366     ArkWebStringStructRelease(ark_value1);
367     ArkWebStringStructRelease(ark_key2);
368     ArkWebStringStructRelease(ark_value2);
369     ArkWebStringStructRelease(ark_key3);
370     ArkWebStringStructRelease(ark_value3);
371     ArkWebStringStructRelease(ark_key4);
372     ArkWebStringStructRelease(ark_value4);
373     ArkWebStringStructRelease(ark_key5);
374     ArkWebStringStructRelease(ark_value5);
375     ArkWebStringStructRelease(ark_key6);
376     ArkWebStringStructRelease(ark_value6);
377     ArkWebStringStructRelease(ark_key7);
378     ArkWebStringStructRelease(ark_value7);
379 
380     return result;
381 }
382 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string,const std::string> & data)383 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
384     const std::tuple<const std::string, const std::string, const std::string, const std::string, const std::string,
385         const std::string, const std::string, const std::string, const std::string, const std::string,
386         const std::string, const std::string, const std::string, const std::string, const std::string,
387         const std::string>& data)
388 {
389     if (!ctocpp_) {
390         return -1;
391     }
392     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
393     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
394     ArkWebString ark_value1 = ArkWebStringClassToStruct(std::get<1>(data));
395     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
396     ArkWebString ark_value2 = ArkWebStringClassToStruct(std::get<3>(data));
397     ArkWebString ark_key3 = ArkWebStringClassToStruct(std::get<4>(data));
398     ArkWebString ark_value3 = ArkWebStringClassToStruct(std::get<5>(data));
399     ArkWebString ark_key4 = ArkWebStringClassToStruct(std::get<6>(data));
400     ArkWebString ark_value4 = ArkWebStringClassToStruct(std::get<7>(data));
401     ArkWebString ark_key5 = ArkWebStringClassToStruct(std::get<8>(data));
402     ArkWebString ark_value5 = ArkWebStringClassToStruct(std::get<9>(data));
403     ArkWebString ark_key6 = ArkWebStringClassToStruct(std::get<10>(data));
404     ArkWebString ark_value6 = ArkWebStringClassToStruct(std::get<11>(data));
405     ArkWebString ark_key7 = ArkWebStringClassToStruct(std::get<12>(data));
406     ArkWebString ark_value7 = ArkWebStringClassToStruct(std::get<13>(data));
407     ArkWebString ark_key8 = ArkWebStringClassToStruct(std::get<14>(data));
408     ArkWebString ark_value8 = ArkWebStringClassToStruct(std::get<15>(data));
409 
410     int result = ctocpp_->Write(ark_event_name, (uint32_t)type, ark_key1, ark_value1, ark_key2, ark_value2, ark_key3,
411         ark_value3, ark_key4, ark_value4, ark_key5, ark_value5, ark_key6, ark_value6, ark_key7, ark_value7, ark_key8,
412         ark_value8);
413 
414     ArkWebStringStructRelease(ark_event_name);
415     ArkWebStringStructRelease(ark_key1);
416     ArkWebStringStructRelease(ark_value1);
417     ArkWebStringStructRelease(ark_key2);
418     ArkWebStringStructRelease(ark_value2);
419     ArkWebStringStructRelease(ark_key3);
420     ArkWebStringStructRelease(ark_value3);
421     ArkWebStringStructRelease(ark_key4);
422     ArkWebStringStructRelease(ark_value4);
423     ArkWebStringStructRelease(ark_key5);
424     ArkWebStringStructRelease(ark_value5);
425     ArkWebStringStructRelease(ark_key6);
426     ArkWebStringStructRelease(ark_value6);
427     ArkWebStringStructRelease(ark_key7);
428     ArkWebStringStructRelease(ark_value7);
429     ArkWebStringStructRelease(ark_key8);
430     ArkWebStringStructRelease(ark_value8);
431 
432     return result;
433 }
434 
Write(const std::string & eventName,ArkEventType type,const std::tuple<const std::string,const uint32_t,const std::string,const uint64_t> & data)435 int ArkHiSysEventAdapterWrapper::Write(const std::string& eventName, ArkEventType type,
436     const std::tuple<const std::string, const uint32_t, const std::string, const uint64_t>& data)
437 {
438     if (!ctocpp_) {
439         return -1;
440     }
441     ArkWebString ark_event_name = ArkWebStringClassToStruct(eventName);
442     ArkWebString ark_key1 = ArkWebStringClassToStruct(std::get<0>(data));
443     ArkWebString ark_key2 = ArkWebStringClassToStruct(std::get<2>(data));
444 
445     int result = ctocpp_->Write(
446         ark_event_name, (uint32_t)type, ark_key1, std::get<1>(data), ark_key2, std::get<3>(data));
447 
448     ArkWebStringStructRelease(ark_event_name);
449     ArkWebStringStructRelease(ark_key1);
450     ArkWebStringStructRelease(ark_key2);
451 
452     return result;
453 }
454 
455 } // namespace OHOS::ArkWeb
456