1 /*
2  * Copyright (c) 2022 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_ohos_adapter_helper_impl.h"
17 
18 #include "ohos_adapter/bridge/ark_aafwk_app_mgr_client_adapter_impl.h"
19 #include "ohos_adapter/bridge/ark_access_token_adapter_impl.h"
20 #include "ohos_adapter/bridge/ark_audio_capturer_adapter_impl.h"
21 #include "ohos_adapter/bridge/ark_audio_renderer_adapter_impl.h"
22 #include "ohos_adapter/bridge/ark_audio_system_manager_adapter_impl.h"
23 #include "ohos_adapter/bridge/ark_battery_info_impl.h"
24 #include "ohos_adapter/bridge/ark_battery_mgr_client_adapter_impl.h"
25 #include "ohos_adapter/bridge/ark_camera_manager_adapter_impl.h"
26 #include "ohos_adapter/bridge/ark_camera_surface_adapter_impl.h"
27 #include "ohos_adapter/bridge/ark_camera_surface_buffer_adapter_impl.h"
28 #include "ohos_adapter/bridge/ark_cert_manager_adapter_impl.h"
29 #include "ohos_adapter/bridge/ark_datashare_adapter_impl.h"
30 #include "ohos_adapter/bridge/ark_date_time_format_adapter_impl.h"
31 #include "ohos_adapter/bridge/ark_display_adapter_impl.h"
32 #include "ohos_adapter/bridge/ark_display_manager_adapter_impl.h"
33 #include "ohos_adapter/bridge/ark_enterprise_device_management_adapter_impl.h"
34 #include "ohos_adapter/bridge/ark_event_handler_adapter_impl.h"
35 #include "ohos_adapter/bridge/ark_flowbuffer_adapter_impl.h"
36 #include "ohos_adapter/bridge/ark_hisysevent_adapter_impl.h"
37 #include "ohos_adapter/bridge/ark_hitrace_adapter_impl.h"
38 #include "ohos_adapter/bridge/ark_iconsumer_surface_adapter_impl.h"
39 #include "ohos_adapter/bridge/ark_imf_adapter_impl.h"
40 #include "ohos_adapter/bridge/ark_keystore_adapter_impl.h"
41 #include "ohos_adapter/bridge/ark_location_info_impl.h"
42 #include "ohos_adapter/bridge/ark_location_instance_impl.h"
43 #include "ohos_adapter/bridge/ark_location_proxy_adapter_impl.h"
44 #include "ohos_adapter/bridge/ark_location_request_config_impl.h"
45 #include "ohos_adapter/bridge/ark_media_avsession_adapter_impl.h"
46 #include "ohos_adapter/bridge/ark_media_codec_decoder_adapter_impl.h"
47 #include "ohos_adapter/bridge/ark_media_codec_encoder_adapter_impl.h"
48 #include "ohos_adapter/bridge/ark_mmi_adapter_impl.h"
49 #include "ohos_adapter/bridge/ark_native_image_adapter_impl.h"
50 #include "ohos_adapter/bridge/ark_net_connect_adapter_impl.h"
51 #include "ohos_adapter/bridge/ark_net_proxy_adapter_impl.h"
52 #include "ohos_adapter/bridge/ark_ohos_file_mapper_impl.h"
53 #include "ohos_adapter/bridge/ark_ohos_image_decoder_adapter_impl.h"
54 #include "ohos_adapter/bridge/ark_ohos_init_web_adapter_impl.h"
55 #include "ohos_adapter/bridge/ark_ohos_native_buffer_adapter_impl.h"
56 #include "ohos_adapter/bridge/ark_ohos_resource_adapter_impl.h"
57 #include "ohos_adapter/bridge/ark_ohos_web_data_base_adapter_impl.h"
58 #include "ohos_adapter/bridge/ark_paste_board_client_adapter_impl.h"
59 #include "ohos_adapter/bridge/ark_paste_data_adapter_impl.h"
60 #include "ohos_adapter/bridge/ark_paste_data_record_adapter_impl.h"
61 #include "ohos_adapter/bridge/ark_player_adapter_impl.h"
62 #include "ohos_adapter/bridge/ark_power_mgr_client_adapter_impl.h"
63 #include "ohos_adapter/bridge/ark_print_manager_adapter_impl.h"
64 #include "ohos_adapter/bridge/ark_running_lock_adapter_impl.h"
65 #include "ohos_adapter/bridge/ark_screen_capture_adapter_impl.h"
66 #include "ohos_adapter/bridge/ark_soc_perf_client_adapter_impl.h"
67 #include "ohos_adapter/bridge/ark_surface_buffer_adapter_impl.h"
68 #include "ohos_adapter/bridge/ark_system_properties_adapter_impl.h"
69 #include "ohos_adapter/bridge/ark_vsync_adapter_impl.h"
70 #include "ohos_adapter/bridge/ark_web_date_timezone_info_impl.h"
71 #include "ohos_adapter/bridge/ark_window_adapter_impl.h"
72 #include "ohos_adapter/bridge/ark_sensor_adapter_impl.h"
73 #include "base/bridge/ark_web_bridge_macros.h"
74 
75 namespace OHOS::ArkWeb {
76 
GetInstance()77 ArkWebRefPtr<ArkOhosAdapterHelper> ArkOhosAdapterHelper::GetInstance()
78 {
79     static NWeb::OhosAdapterHelper& instance = NWeb::OhosAdapterHelper::GetInstance();
80     static ArkWebRefPtr<ArkOhosAdapterHelper> impl = new ArkOhosAdapterHelperImpl(instance);
81     return impl;
82 }
83 
ArkOhosAdapterHelperImpl(NWeb::OhosAdapterHelper & ref)84 ArkOhosAdapterHelperImpl::ArkOhosAdapterHelperImpl(NWeb::OhosAdapterHelper& ref) : real_(ref) {}
85 
CreateAafwkAdapter()86 ArkWebRefPtr<ArkAafwkAppMgrClientAdapter> ArkOhosAdapterHelperImpl::CreateAafwkAdapter()
87 {
88     std::unique_ptr<NWeb::AafwkAppMgrClientAdapter> adapter = real_.CreateAafwkAdapter();
89     std::shared_ptr<NWeb::AafwkAppMgrClientAdapter> shared = std::move(adapter);
90     return new ArkAafwkAppMgrClientAdapterImpl(shared);
91 }
92 
CreatePowerMgrClientAdapter()93 ArkWebRefPtr<ArkPowerMgrClientAdapter> ArkOhosAdapterHelperImpl::CreatePowerMgrClientAdapter()
94 {
95     std::unique_ptr<NWeb::PowerMgrClientAdapter> adapter = real_.CreatePowerMgrClientAdapter();
96     std::shared_ptr<NWeb::PowerMgrClientAdapter> shared = std::move(adapter);
97     return new ArkPowerMgrClientAdapterImpl(shared);
98 }
99 
CreateDisplayMgrAdapter()100 ArkWebRefPtr<ArkDisplayManagerAdapter> ArkOhosAdapterHelperImpl::CreateDisplayMgrAdapter()
101 {
102     std::unique_ptr<NWeb::DisplayManagerAdapter> adapter = real_.CreateDisplayMgrAdapter();
103     std::shared_ptr<NWeb::DisplayManagerAdapter> shared = std::move(adapter);
104     return new ArkDisplayManagerAdapterImpl(shared);
105 }
106 
CreateBatteryClientAdapter()107 ArkWebRefPtr<ArkBatteryMgrClientAdapter> ArkOhosAdapterHelperImpl::CreateBatteryClientAdapter()
108 {
109     std::unique_ptr<NWeb::BatteryMgrClientAdapter> adapter = real_.CreateBatteryClientAdapter();
110     std::shared_ptr<NWeb::BatteryMgrClientAdapter> shared = std::move(adapter);
111     return new ArkBatteryMgrClientAdapterImpl(shared);
112 }
113 
CreateNetConnectAdapter()114 ArkWebRefPtr<ArkNetConnectAdapter> ArkOhosAdapterHelperImpl::CreateNetConnectAdapter()
115 {
116     std::unique_ptr<NWeb::NetConnectAdapter> adapter = real_.CreateNetConnectAdapter();
117     std::shared_ptr<NWeb::NetConnectAdapter> shared = std::move(adapter);
118     return new ArkNetConnectAdapterImpl(shared);
119 }
120 
GetOhosWebDataBaseAdapterInstance()121 ArkWebRefPtr<ArkOhosWebDataBaseAdapter> ArkOhosAdapterHelperImpl::GetOhosWebDataBaseAdapterInstance()
122 {
123     static NWeb::OhosWebDataBaseAdapter& instance = real_.GetOhosWebDataBaseAdapterInstance();
124     static ArkWebRefPtr<ArkOhosWebDataBaseAdapter> impl = new ArkOhosWebDataBaseAdapterImpl(instance);
125     return impl;
126 }
127 
GetPasteBoard()128 ArkWebRefPtr<ArkPasteBoardClientAdapter> ArkOhosAdapterHelperImpl::GetPasteBoard()
129 {
130     static NWeb::PasteBoardClientAdapter& instance = real_.GetPasteBoard();
131     static ArkWebRefPtr<ArkPasteBoardClientAdapter> impl = new ArkPasteBoardClientAdapterImpl(instance);
132     return impl;
133 }
134 
CreateAudioRendererAdapter()135 ArkWebRefPtr<ArkAudioRendererAdapter> ArkOhosAdapterHelperImpl::CreateAudioRendererAdapter()
136 {
137     std::unique_ptr<NWeb::AudioRendererAdapter> adapter = real_.CreateAudioRendererAdapter();
138     std::shared_ptr<NWeb::AudioRendererAdapter> shared = std::move(adapter);
139     return new ArkAudioRendererAdapterImpl(shared);
140 }
141 
CreateAudioCapturerAdapter()142 ArkWebRefPtr<ArkAudioCapturerAdapter> ArkOhosAdapterHelperImpl::CreateAudioCapturerAdapter()
143 {
144     std::unique_ptr<NWeb::AudioCapturerAdapter> adapter = real_.CreateAudioCapturerAdapter();
145     std::shared_ptr<NWeb::AudioCapturerAdapter> shared = std::move(adapter);
146     return new ArkAudioCapturerAdapterImpl(shared);
147 }
148 
GetAudioSystemManager()149 ArkWebRefPtr<ArkAudioSystemManagerAdapter> ArkOhosAdapterHelperImpl::GetAudioSystemManager()
150 {
151     static NWeb::AudioSystemManagerAdapter& instance = real_.GetAudioSystemManager();
152     static ArkWebRefPtr<ArkAudioSystemManagerAdapter> impl = new ArkAudioSystemManagerAdapterImpl(instance);
153     return impl;
154 }
155 
GetWebPermissionDataBaseInstance()156 ArkWebRefPtr<ArkOhosWebPermissionDataBaseAdapter> ArkOhosAdapterHelperImpl::GetWebPermissionDataBaseInstance()
157 {
158     static NWeb::OhosWebPermissionDataBaseAdapter& instance = real_.GetWebPermissionDataBaseInstance();
159     static ArkWebRefPtr<ArkOhosWebPermissionDataBaseAdapter> impl =
160         new ArkOhosWebPermissionDataBaseAdapterImpl(instance);
161     return impl;
162 }
163 
CreateMMIAdapter()164 ArkWebRefPtr<ArkMMIAdapter> ArkOhosAdapterHelperImpl::CreateMMIAdapter()
165 {
166     std::unique_ptr<NWeb::MMIAdapter> adapter = real_.CreateMMIAdapter();
167     std::shared_ptr<NWeb::MMIAdapter> shared = std::move(adapter);
168     return new ArkMMIAdapterImpl(shared);
169 }
170 
CreateSocPerfClientAdapter()171 ArkWebRefPtr<ArkSocPerfClientAdapter> ArkOhosAdapterHelperImpl::CreateSocPerfClientAdapter()
172 {
173     std::unique_ptr<NWeb::SocPerfClientAdapter> adapter = real_.CreateSocPerfClientAdapter();
174     std::shared_ptr<NWeb::SocPerfClientAdapter> shared = std::move(adapter);
175     return new ArkSocPerfClientAdapterImpl(shared);
176 }
177 
GetResourceAdapter(const ArkWebString & hapPath)178 ArkWebRefPtr<ArkOhosResourceAdapter> ArkOhosAdapterHelperImpl::GetResourceAdapter(const ArkWebString& hapPath)
179 {
180     std::unique_ptr<NWeb::OhosResourceAdapter> adapter = real_.GetResourceAdapter(ArkWebStringStructToClass(hapPath));
181     std::shared_ptr<NWeb::OhosResourceAdapter> shared = std::move(adapter);
182     return new ArkOhosResourceAdapterImpl(shared);
183 }
184 
GetSystemPropertiesInstance()185 ArkWebRefPtr<ArkSystemPropertiesAdapter> ArkOhosAdapterHelperImpl::GetSystemPropertiesInstance()
186 {
187     static NWeb::SystemPropertiesAdapter& instance = real_.GetSystemPropertiesInstance();
188     static ArkWebRefPtr<ArkSystemPropertiesAdapter> impl = new ArkSystemPropertiesAdapterImpl(instance);
189     return impl;
190 }
191 
GetVSyncAdapter()192 ArkWebRefPtr<ArkVSyncAdapter> ArkOhosAdapterHelperImpl::GetVSyncAdapter()
193 {
194     static NWeb::VSyncAdapter& instance = real_.GetVSyncAdapter();
195     static ArkWebRefPtr<ArkVSyncAdapter> impl = new ArkVSyncAdapterImpl(instance);
196     return impl;
197 }
198 
GetInitWebAdapter()199 ArkWebRefPtr<ArkOhosInitWebAdapter> ArkOhosAdapterHelperImpl::GetInitWebAdapter()
200 {
201     std::unique_ptr<NWeb::OhosInitWebAdapter> adapter = real_.GetInitWebAdapter();
202     std::shared_ptr<NWeb::OhosInitWebAdapter> shared = std::move(adapter);
203     return new ArkOhosInitWebAdapterImpl(shared);
204 }
205 
GetKeystoreAdapterInstance()206 ArkWebRefPtr<ArkKeystoreAdapter> ArkOhosAdapterHelperImpl::GetKeystoreAdapterInstance()
207 {
208     static NWeb::KeystoreAdapter& instance = real_.GetKeystoreAdapterInstance();
209     static ArkWebRefPtr<ArkKeystoreAdapter> impl = new ArkKeystoreAdapterImpl(instance);
210     return impl;
211 }
212 
GetEnterpriseDeviceManagementInstance()213 ArkWebRefPtr<ArkEnterpriseDeviceManagementAdapter> ArkOhosAdapterHelperImpl::GetEnterpriseDeviceManagementInstance()
214 {
215     static NWeb::EnterpriseDeviceManagementAdapter& instance = real_.GetEnterpriseDeviceManagementInstance();
216     static ArkWebRefPtr<ArkEnterpriseDeviceManagementAdapter> impl =
217         new ArkEnterpriseDeviceManagementAdapterImpl(instance);
218     return impl;
219 }
220 
GetDatashareInstance()221 ArkWebRefPtr<ArkDatashareAdapter> ArkOhosAdapterHelperImpl::GetDatashareInstance()
222 {
223     static NWeb::DatashareAdapter& instance = real_.GetDatashareInstance();
224     static ArkWebRefPtr<ArkDatashareAdapter> impl = new ArkDatashareAdapterImpl(instance);
225     return impl;
226 }
227 
CreateIMFAdapter()228 ArkWebRefPtr<ArkIMFAdapter> ArkOhosAdapterHelperImpl::CreateIMFAdapter()
229 {
230     std::unique_ptr<NWeb::IMFAdapter> adapter = real_.CreateIMFAdapter();
231     std::shared_ptr<NWeb::IMFAdapter> shared = std::move(adapter);
232     return new ArkIMFAdapterImpl(shared);
233 }
234 
GetRootCertDataAdapter()235 ArkWebRefPtr<ArkCertManagerAdapter> ArkOhosAdapterHelperImpl::GetRootCertDataAdapter()
236 {
237     std::unique_ptr<NWeb::CertManagerAdapter> adapter = real_.GetRootCertDataAdapter();
238     std::shared_ptr<NWeb::CertManagerAdapter> shared = std::move(adapter);
239     return new ArkCertManagerAdapterImpl(shared);
240 }
241 
GetAccessTokenAdapterInstance()242 ArkWebRefPtr<ArkAccessTokenAdapter> ArkOhosAdapterHelperImpl::GetAccessTokenAdapterInstance()
243 {
244     static NWeb::AccessTokenAdapter& instance = real_.GetAccessTokenAdapterInstance();
245     static ArkWebRefPtr<ArkAccessTokenAdapter> impl = new ArkAccessTokenAdapterImpl(instance);
246     return impl;
247 }
248 
GetEventHandlerAdapter()249 ArkWebRefPtr<ArkEventHandlerAdapter> ArkOhosAdapterHelperImpl::GetEventHandlerAdapter()
250 {
251     std::unique_ptr<NWeb::EventHandlerAdapter> adapter = real_.GetEventHandlerAdapter();
252     std::shared_ptr<NWeb::EventHandlerAdapter> shared = std::move(adapter);
253     return new ArkEventHandlerAdapterImpl(shared);
254 }
255 
GetPrintManagerInstance()256 ArkWebRefPtr<ArkPrintManagerAdapter> ArkOhosAdapterHelperImpl::GetPrintManagerInstance()
257 {
258     static NWeb::PrintManagerAdapter& instance = real_.GetPrintManagerInstance();
259     static ArkWebRefPtr<ArkPrintManagerAdapter> impl = new ArkPrintManagerAdapterImpl(instance);
260     return impl;
261 }
262 
CreateConsumerSurfaceAdapter()263 ArkWebRefPtr<ArkIConsumerSurfaceAdapter> ArkOhosAdapterHelperImpl::CreateConsumerSurfaceAdapter()
264 {
265     std::unique_ptr<NWeb::IConsumerSurfaceAdapter> adapter = real_.CreateConsumerSurfaceAdapter();
266     std::shared_ptr<NWeb::IConsumerSurfaceAdapter> shared = std::move(adapter);
267     return new ArkIConsumerSurfaceAdapterImpl(shared);
268 }
269 
CreatePlayerAdapter()270 ArkWebRefPtr<ArkPlayerAdapter> ArkOhosAdapterHelperImpl::CreatePlayerAdapter()
271 {
272     std::unique_ptr<NWeb::PlayerAdapter> adapter = real_.CreatePlayerAdapter();
273     std::shared_ptr<NWeb::PlayerAdapter> shared = std::move(adapter);
274     return new ArkPlayerAdapterImpl(shared);
275 }
276 
GetWindowAdapterInstance()277 ArkWebRefPtr<ArkWindowAdapter> ArkOhosAdapterHelperImpl::GetWindowAdapterInstance()
278 {
279     static NWeb::WindowAdapter& instance = real_.GetWindowAdapterInstance();
280     static ArkWebRefPtr<ArkWindowAdapter> impl = new ArkWindowAdapterImpl(instance);
281     return impl;
282 }
283 
GetHiSysEventAdapterInstance()284 ArkWebRefPtr<ArkHiSysEventAdapter> ArkOhosAdapterHelperImpl::GetHiSysEventAdapterInstance()
285 {
286     static NWeb::HiSysEventAdapter& instance = real_.GetHiSysEventAdapterInstance();
287     static ArkWebRefPtr<ArkHiSysEventAdapter> impl = new ArkHiSysEventAdapterImpl(instance);
288     return impl;
289 }
290 
GetHiTraceAdapterInstance()291 ArkWebRefPtr<ArkHiTraceAdapter> ArkOhosAdapterHelperImpl::GetHiTraceAdapterInstance()
292 {
293     static NWeb::HiTraceAdapter& instance = real_.GetHiTraceAdapterInstance();
294     static ArkWebRefPtr<ArkHiTraceAdapter> impl = new ArkHiTraceAdapterImpl(instance);
295     return impl;
296 }
297 
GetNetProxyInstance()298 ArkWebRefPtr<ArkNetProxyAdapter> ArkOhosAdapterHelperImpl::GetNetProxyInstance()
299 {
300     static NWeb::NetProxyAdapter& instance = real_.GetNetProxyInstance();
301     static ArkWebRefPtr<ArkNetProxyAdapter> impl = new ArkNetProxyAdapterImpl(instance);
302     return impl;
303 }
304 
GetCameraManagerAdapter()305 ArkWebRefPtr<ArkCameraManagerAdapter> ArkOhosAdapterHelperImpl::GetCameraManagerAdapter()
306 {
307     static NWeb::CameraManagerAdapter& instance = real_.GetCameraManagerAdapter();
308     static ArkWebRefPtr<ArkCameraManagerAdapter> impl = new ArkCameraManagerAdapterImpl(instance);
309     return impl;
310 }
311 
CreateScreenCaptureAdapter()312 ArkWebRefPtr<ArkScreenCaptureAdapter> ArkOhosAdapterHelperImpl::CreateScreenCaptureAdapter()
313 {
314     std::unique_ptr<NWeb::ScreenCaptureAdapter> adapter = real_.CreateScreenCaptureAdapter();
315     std::shared_ptr<NWeb::ScreenCaptureAdapter> shared = std::move(adapter);
316     return new ArkScreenCaptureAdapterImpl(shared);
317 }
318 
CreateDateTimeFormatAdapter()319 ArkWebRefPtr<ArkDateTimeFormatAdapter> ArkOhosAdapterHelperImpl::CreateDateTimeFormatAdapter()
320 {
321     std::unique_ptr<NWeb::DateTimeFormatAdapter> adapter = real_.CreateDateTimeFormatAdapter();
322     std::shared_ptr<NWeb::DateTimeFormatAdapter> shared = std::move(adapter);
323     return new ArkDateTimeFormatAdapterImpl(shared);
324 }
325 
CreateMediaCodecDecoderAdapter()326 ArkWebRefPtr<ArkMediaCodecDecoderAdapter> ArkOhosAdapterHelperImpl::CreateMediaCodecDecoderAdapter()
327 {
328     std::unique_ptr<NWeb::MediaCodecDecoderAdapter> adapter = real_.CreateMediaCodecDecoderAdapter();
329     std::shared_ptr<NWeb::MediaCodecDecoderAdapter> shared = std::move(adapter);
330     return new ArkMediaCodecDecoderAdapterImpl(shared);
331 }
332 
CreateNativeImageAdapter()333 ArkWebRefPtr<ArkNativeImageAdapter> ArkOhosAdapterHelperImpl::CreateNativeImageAdapter()
334 {
335     std::unique_ptr<NWeb::NativeImageAdapter> adapter = real_.CreateNativeImageAdapter();
336     std::shared_ptr<NWeb::NativeImageAdapter> shared = std::move(adapter);
337     return new ArkNativeImageAdapterImpl(shared);
338 }
339 
GetMediaCodecListAdapter()340 ArkWebRefPtr<ArkMediaCodecListAdapter> ArkOhosAdapterHelperImpl::GetMediaCodecListAdapter()
341 {
342     static NWeb::MediaCodecListAdapter& instance = real_.GetMediaCodecListAdapter();
343     static ArkWebRefPtr<ArkMediaCodecListAdapter> impl = new ArkMediaCodecListAdapterImpl(instance);
344     return impl;
345 }
346 
CreateMediaCodecEncoderAdapter()347 ArkWebRefPtr<ArkMediaCodecAdapter> ArkOhosAdapterHelperImpl::CreateMediaCodecEncoderAdapter()
348 {
349     std::unique_ptr<NWeb::MediaCodecAdapter> adapter = real_.CreateMediaCodecEncoderAdapter();
350     std::shared_ptr<NWeb::MediaCodecAdapter> shared = std::move(adapter);
351     return new ArkMediaCodecEncoderAdapterImpl(shared);
352 }
353 
CreateFlowbufferAdapter()354 ArkWebRefPtr<ArkFlowbufferAdapter> ArkOhosAdapterHelperImpl::CreateFlowbufferAdapter()
355 {
356     std::unique_ptr<NWeb::FlowbufferAdapter> adapter = real_.CreateFlowbufferAdapter();
357     std::shared_ptr<NWeb::FlowbufferAdapter> shared = std::move(adapter);
358     return new ArkFlowbufferAdapterImpl(shared);
359 }
360 
CreateMediaAVSessionAdapter()361 ArkWebRefPtr<ArkMediaAVSessionAdapter> ArkOhosAdapterHelperImpl::CreateMediaAVSessionAdapter()
362 {
363     std::unique_ptr<NWeb::MediaAVSessionAdapter> adapter = real_.CreateMediaAVSessionAdapter();
364     std::shared_ptr<NWeb::MediaAVSessionAdapter> shared = std::move(adapter);
365     return new ArkMediaAVSessionAdapterImpl(shared);
366 }
367 
CreateOhosImageDecoderAdapter()368 ArkWebRefPtr<ArkOhosImageDecoderAdapter> ArkOhosAdapterHelperImpl::CreateOhosImageDecoderAdapter()
369 {
370     std::unique_ptr<NWeb::OhosImageDecoderAdapter> adapter = real_.CreateOhosImageDecoderAdapter();
371     std::shared_ptr<NWeb::OhosImageDecoderAdapter> shared = std::move(adapter);
372     return new ArkOhosImageDecoderAdapterImpl(shared);
373 }
374 
CreateSensorAdapter()375 ArkWebRefPtr<ArkSensorAdapter> ArkOhosAdapterHelperImpl::CreateSensorAdapter()
376 {
377     std::unique_ptr<NWeb::SensorAdapter> adapter = real_.CreateSensorAdapter();
378     std::shared_ptr<NWeb::SensorAdapter> shared = std::move(adapter);
379     return new ArkSensorAdapterImpl(shared);
380 }
381 
SetArkWebCoreHapPathOverride(const ArkWebString & hapPath)382 void ArkOhosAdapterHelperImpl::SetArkWebCoreHapPathOverride(const ArkWebString& hapPath)
383 {
384     real_.SetArkWebCoreHapPathOverride(ArkWebStringStructToClass(hapPath));
385 }
386 
GetOhosNativeBufferAdapter()387 ArkWebRefPtr<ArkOhosNativeBufferAdapter> ArkOhosAdapterHelperImpl::GetOhosNativeBufferAdapter()
388 {
389     static NWeb::OhosNativeBufferAdapter& instance = real_.GetOhosNativeBufferAdapter();
390     static ArkWebRefPtr<ArkOhosNativeBufferAdapter> impl = new ArkOhosNativeBufferAdapterImpl(instance);
391     return impl;
392 }
393 
394 } // namespace OHOS::ArkWeb
395