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_hitrace_adapter_wrapper.h"
17 
18 namespace OHOS::ArkWeb {
19 
ArkHiTraceAdapterWrapper(ArkWebRefPtr<ArkHiTraceAdapter> ref)20 ArkHiTraceAdapterWrapper::ArkHiTraceAdapterWrapper(ArkWebRefPtr<ArkHiTraceAdapter> ref) : ctocpp_(ref) {}
21 
StartTrace(const std::string & value,float limit)22 void ArkHiTraceAdapterWrapper::StartTrace(const std::string& value, float limit)
23 {
24     if (!ctocpp_) {
25         return;
26     }
27     ArkWebString str = ArkWebStringClassToStruct(value);
28     ctocpp_->StartTrace(str, limit);
29 
30     ArkWebStringStructRelease(str);
31 }
32 
FinishTrace()33 void ArkHiTraceAdapterWrapper::FinishTrace()
34 {
35     if (!ctocpp_) {
36         return;
37     }
38     ctocpp_->FinishTrace();
39 }
40 
StartAsyncTrace(const std::string & value,int32_t taskId,float limit)41 void ArkHiTraceAdapterWrapper::StartAsyncTrace(const std::string& value, int32_t taskId, float limit)
42 {
43     if (!ctocpp_) {
44         return;
45     }
46     ArkWebString str = ArkWebStringClassToStruct(value);
47     ctocpp_->StartAsyncTrace(str, taskId, limit);
48 
49     ArkWebStringStructRelease(str);
50 }
51 
FinishAsyncTrace(const std::string & value,int32_t taskId)52 void ArkHiTraceAdapterWrapper::FinishAsyncTrace(const std::string& value, int32_t taskId)
53 {
54     if (!ctocpp_) {
55         return;
56     }
57     ArkWebString str = ArkWebStringClassToStruct(value);
58     ctocpp_->FinishAsyncTrace(str, taskId);
59 
60     ArkWebStringStructRelease(str);
61 }
62 
CountTrace(const std::string & name,int64_t count)63 void ArkHiTraceAdapterWrapper::CountTrace(const std::string& name, int64_t count)
64 {
65     if (!ctocpp_) {
66         return;
67     }
68     ArkWebString str = ArkWebStringClassToStruct(name);
69     ctocpp_->CountTrace(str, count);
70 
71     ArkWebStringStructRelease(str);
72 }
73 
IsHiTraceEnable()74 bool ArkHiTraceAdapterWrapper::IsHiTraceEnable()
75 {
76     if (!ctocpp_) {
77         return false;
78     }
79     return ctocpp_->IsHiTraceEnable();
80 }
81 
StartOHOSTrace(const std::string & value,float limit)82 void ArkHiTraceAdapterWrapper::StartOHOSTrace(const std::string& value, float limit)
83 {
84     if (!ctocpp_) {
85         return;
86     }
87     ArkWebString str = ArkWebStringClassToStruct(value);
88     ctocpp_->StartOHOSTrace(str, limit);
89 
90     ArkWebStringStructRelease(str);
91 }
92 
FinishOHOSTrace()93 void ArkHiTraceAdapterWrapper::FinishOHOSTrace()
94 {
95     if (!ctocpp_) {
96         return;
97     }
98     ctocpp_->FinishOHOSTrace();
99 }
100 
CountOHOSTrace(const std::string & name,int64_t count)101 void ArkHiTraceAdapterWrapper::CountOHOSTrace(const std::string& name, int64_t count)
102 {
103     if (!ctocpp_) {
104         return;
105     }
106     ArkWebString str = ArkWebStringClassToStruct(name);
107     ctocpp_->CountOHOSTrace(str, count);
108 
109     ArkWebStringStructRelease(str);
110 }
111 
IsACETraceEnable()112 bool ArkHiTraceAdapterWrapper::IsACETraceEnable()
113 {
114     if (!ctocpp_) {
115         return false;
116     }
117     return ctocpp_->IsACETraceEnable();
118 }
119 } // namespace OHOS::ArkWeb
120