• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 wrapperied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "ohos_nweb/bridge/ark_web_rom_value_wrapper.h"
17 
18 #include "ohos_nweb/ctocpp/ark_web_rom_value_vector_ctocpp.h"
19 
20 #include "base/bridge/ark_web_bridge_macros.h"
21 
22 namespace OHOS::ArkWeb {
23 
24 using ArkWebRomValueType = OHOS::NWeb::NWebRomValue::Type;
25 
ArkWebRomValueWrapper(ArkWebRefPtr<ArkWebRomValue> ark_web_rom_value)26 ArkWebRomValueWrapper::ArkWebRomValueWrapper(ArkWebRefPtr<ArkWebRomValue> ark_web_rom_value)
27     : ark_web_rom_value_(ark_web_rom_value)
28 {}
29 
GetType()30 ArkWebRomValueType ArkWebRomValueWrapper::GetType()
31 {
32     return static_cast<ArkWebRomValueType>(ark_web_rom_value_->GetType());
33 }
34 
SetType(ArkWebRomValueType type)35 void ArkWebRomValueWrapper::SetType(ArkWebRomValueType type)
36 {
37     ark_web_rom_value_->SetType(static_cast<unsigned char>(type));
38 }
39 
GetInt()40 int ArkWebRomValueWrapper::GetInt()
41 {
42     return ark_web_rom_value_->GetInt();
43 }
44 
SetInt(int value)45 void ArkWebRomValueWrapper::SetInt(int value)
46 {
47     ark_web_rom_value_->SetInt(value);
48 }
49 
GetBool()50 bool ArkWebRomValueWrapper::GetBool()
51 {
52     return ark_web_rom_value_->GetBool();
53 }
54 
SetBool(bool value)55 void ArkWebRomValueWrapper::SetBool(bool value)
56 {
57     ark_web_rom_value_->SetBool(value);
58 }
59 
GetDouble()60 double ArkWebRomValueWrapper::GetDouble()
61 {
62     return ark_web_rom_value_->GetDouble();
63 }
64 
SetDouble(double value)65 void ArkWebRomValueWrapper::SetDouble(double value)
66 {
67     ark_web_rom_value_->SetDouble(value);
68 }
69 
GetString()70 std::string ArkWebRomValueWrapper::GetString()
71 {
72     auto stValue = ark_web_rom_value_->GetString();
73     auto value = ArkWebStringStructToClass(stValue);
74     ArkWebStringStructRelease(stValue);
75     return value;
76 }
77 
SetString(const std::string & value)78 void ArkWebRomValueWrapper::SetString(const std::string& value)
79 {
80     auto stValue = ArkWebStringClassToStruct(value);
81     ark_web_rom_value_->SetString(stValue);
82     ArkWebStringStructRelease(stValue);
83 }
84 
GetBinary(int & length)85 const char* ArkWebRomValueWrapper::GetBinary(int& length)
86 {
87     return ark_web_rom_value_->GetBinary(length);
88 }
89 
SetBinary(int length,const char * value)90 void ArkWebRomValueWrapper::SetBinary(int length, const char* value)
91 {
92     ark_web_rom_value_->SetBinary(length, value);
93 }
94 
GetDictValue()95 std::map<std::string, std::shared_ptr<OHOS::NWeb::NWebRomValue>> ArkWebRomValueWrapper::GetDictValue()
96 {
97     auto stValue = ark_web_rom_value_->GetDictValue();
98     auto value = ArkWebRomValueMapStructToClass(stValue);
99     ArkWebRomValueMapStructRelease(stValue);
100     return value;
101 }
102 
GetListValue()103 std::vector<std::shared_ptr<OHOS::NWeb::NWebRomValue>> ArkWebRomValueWrapper::GetListValue()
104 {
105     auto stValue = ark_web_rom_value_->GetListValue();
106     auto value = ArkWebRomValueVectorStructToClass(stValue);
107     ArkWebRomValueVectorStructRelease(stValue);
108     return value;
109 }
110 
NewChildValue()111 std::shared_ptr<OHOS::NWeb::NWebRomValue> ArkWebRomValueWrapper::NewChildValue()
112 {
113     ArkWebRefPtr<ArkWebRomValue> ark_web_rom_value = ark_web_rom_value_->NewChildValue();
114     if (CHECK_REF_PTR_IS_NULL(ark_web_rom_value)) {
115         return nullptr;
116     }
117 
118     return std::make_shared<ArkWebRomValueWrapper>(ark_web_rom_value);
119 }
120 
SaveDictChildValue(const std::string & key)121 void ArkWebRomValueWrapper::SaveDictChildValue(const std::string& key)
122 {
123     auto stKey = ArkWebStringClassToStruct(key);
124     ark_web_rom_value_->SaveDictChildValue(stKey);
125     ArkWebStringStructRelease(stKey);
126 }
127 
SaveListChildValue()128 void ArkWebRomValueWrapper::SaveListChildValue()
129 {
130     ark_web_rom_value_->SaveListChildValue();
131 }
132 
GetInt64()133 int64_t ArkWebRomValueWrapper::GetInt64()
134 {
135     return ark_web_rom_value_->GetInt64();
136 }
137 
SetInt64(int64_t value)138 void ArkWebRomValueWrapper::SetInt64(int64_t value)
139 {
140     ark_web_rom_value_->SetInt64(value);
141 }
142 
GetBinary()143 std::vector<uint8_t> ArkWebRomValueWrapper::GetBinary()
144 {
145     auto stValue = ark_web_rom_value_->GetBinary();
146     auto value = ArkWebBasicVectorStructToClass<uint8_t, ArkWebUint8Vector>(stValue);
147     ArkWebBasicVectorStructRelease<ArkWebUint8Vector>(stValue);
148     return value;
149 }
150 
SetBinary(const std::vector<uint8_t> & value)151 void ArkWebRomValueWrapper::SetBinary(const std::vector<uint8_t>& value)
152 {
153     auto stValue = ArkWebBasicVectorClassToStruct<uint8_t, ArkWebUint8Vector>(value);
154     ark_web_rom_value_->SetBinary(stValue);
155     ArkWebBasicVectorStructRelease<ArkWebUint8Vector>(stValue);
156 }
157 
GetBoolArray()158 std::vector<bool> ArkWebRomValueWrapper::GetBoolArray()
159 {
160     auto stValue = ark_web_rom_value_->GetBoolArray();
161     auto value = ArkWebBasicVectorStructToClass<bool, ArkWebBooleanVector>(stValue);
162     ArkWebBasicVectorStructRelease<ArkWebBooleanVector>(stValue);
163     return value;
164 }
165 
SetBoolArray(const std::vector<bool> & value)166 void ArkWebRomValueWrapper::SetBoolArray(const std::vector<bool>& value)
167 {
168     auto stValue = ArkWebBasicVectorClassToStruct<bool, ArkWebBooleanVector>(value);
169     ark_web_rom_value_->SetBoolArray(stValue);
170     ArkWebBasicVectorStructRelease<ArkWebBooleanVector>(stValue);
171 }
172 
GetInt64Array()173 std::vector<int64_t> ArkWebRomValueWrapper::GetInt64Array()
174 {
175     auto stValue = ark_web_rom_value_->GetInt64Array();
176     auto value = ArkWebBasicVectorStructToClass<int64_t, ArkWebInt64Vector>(stValue);
177     ArkWebBasicVectorStructRelease<ArkWebInt64Vector>(stValue);
178     return value;
179 }
180 
SetInt64Array(const std::vector<int64_t> & value)181 void ArkWebRomValueWrapper::SetInt64Array(const std::vector<int64_t>& value)
182 {
183     auto stValue = ArkWebBasicVectorClassToStruct<int64_t, ArkWebInt64Vector>(value);
184     ark_web_rom_value_->SetInt64Array(stValue);
185     ArkWebBasicVectorStructRelease<ArkWebInt64Vector>(stValue);
186 }
187 
GetDoubleArray()188 std::vector<double> ArkWebRomValueWrapper::GetDoubleArray()
189 {
190     auto stValue = ark_web_rom_value_->GetDoubleArray();
191     auto value = ArkWebBasicVectorStructToClass<double, ArkWebDoubleVector>(stValue);
192     ArkWebBasicVectorStructRelease<ArkWebDoubleVector>(stValue);
193     return value;
194 }
195 
SetDoubleArray(const std::vector<double> & value)196 void ArkWebRomValueWrapper::SetDoubleArray(const std::vector<double>& value)
197 {
198     auto stValue = ArkWebBasicVectorClassToStruct<double, ArkWebDoubleVector>(value);
199     ark_web_rom_value_->SetDoubleArray(stValue);
200     ArkWebBasicVectorStructRelease<ArkWebDoubleVector>(stValue);
201 }
202 
GetStringArray()203 std::vector<std::string> ArkWebRomValueWrapper::GetStringArray()
204 {
205     auto stValue = ark_web_rom_value_->GetStringArray();
206     auto value = ArkWebStringVectorStructToClass(stValue);
207     ArkWebStringVectorStructRelease(stValue);
208     return value;
209 }
210 
SetStringArray(const std::vector<std::string> & value)211 void ArkWebRomValueWrapper::SetStringArray(const std::vector<std::string>& value)
212 {
213     auto stValue = ArkWebStringVectorClassToStruct(value);
214     ark_web_rom_value_->SetStringArray(stValue);
215     ArkWebStringVectorStructRelease(stValue);
216 }
217 
GetErrMsg()218 std::string ArkWebRomValueWrapper::GetErrMsg()
219 {
220     auto stMsg = ark_web_rom_value_->GetErrMsg();
221     auto msg = ArkWebStringStructToClass(stMsg);
222     ArkWebStringStructRelease(stMsg);
223     return msg;
224 }
225 
SetErrMsg(const std::string & msg)226 void ArkWebRomValueWrapper::SetErrMsg(const std::string& msg)
227 {
228     auto stMsg = ArkWebStringClassToStruct(msg);
229     ark_web_rom_value_->SetErrMsg(stMsg);
230     ArkWebStringStructRelease(stMsg);
231 }
232 
GetErrName()233 std::string ArkWebRomValueWrapper::GetErrName()
234 {
235     auto stName = ark_web_rom_value_->GetErrName();
236     auto name = ArkWebStringStructToClass(stName);
237     ArkWebStringStructRelease(stName);
238     return name;
239 }
240 
SetErrName(const std::string & name)241 void ArkWebRomValueWrapper::SetErrName(const std::string& name)
242 {
243     auto stName = ArkWebStringClassToStruct(name);
244     ark_web_rom_value_->SetErrName(stName);
245     ArkWebStringStructRelease(stName);
246 }
247 
248 } // namespace OHOS::ArkWeb
249