• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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_migration_manager_adapter_wrapper.h"
17 
18 #include "ohos_adapter/bridge/ark_migration_listener_adapter_impl.h"
19 
20 #include "base/bridge/ark_web_bridge_macros.h"
21 
22 namespace OHOS::ArkWeb {
23 
ArkMigrationManagerAdapterWrapper(ArkWebRefPtr<ArkMigrationManagerAdapter> ref)24 ArkMigrationManagerAdapterWrapper::ArkMigrationManagerAdapterWrapper(ArkWebRefPtr<ArkMigrationManagerAdapter> ref)
25     : ctocpp_(ref)
26 {}
27 
SetMigrationParam(const std::string & bundleName,const std::string & abilityName,const std::string & token)28 void ArkMigrationManagerAdapterWrapper::SetMigrationParam(
29     const std::string& bundleName, const std::string& abilityName, const std::string& token)
30 {
31     ArkWebString ark_str_bundle = ArkWebStringClassToStruct(bundleName);
32     ArkWebString ark_str_ability = ArkWebStringClassToStruct(abilityName);
33     ArkWebString ark_str_token = ArkWebStringClassToStruct(token);
34     ctocpp_->SetMigrationParam(ark_str_bundle, ark_str_ability, ark_str_token);
35 
36     ArkWebStringStructRelease(ark_str_bundle);
37     ArkWebStringStructRelease(ark_str_ability);
38     ArkWebStringStructRelease(ark_str_token);
39 }
40 
SendMigrationRequest(std::shared_ptr<std::string> jsonData)41 bool ArkMigrationManagerAdapterWrapper::SendMigrationRequest(std::shared_ptr<std::string> jsonData)
42 {
43     if (jsonData) {
44         return ctocpp_->SendMigrationRequest(jsonData->c_str());
45     } else {
46         return ctocpp_->SendMigrationRequest(nullptr);
47     }
48 }
49 
RegisterMigrationListener(std::shared_ptr<OHOS::NWeb::MigrationListenerAdapter> listener)50 uint32_t ArkMigrationManagerAdapterWrapper::RegisterMigrationListener(
51     std::shared_ptr<OHOS::NWeb::MigrationListenerAdapter> listener)
52 {
53     if (CHECK_SHARED_PTR_IS_NULL(listener)) {
54         return ctocpp_->RegisterMigrationListener(nullptr);
55     }
56 
57     return ctocpp_->RegisterMigrationListener(new ArkMigrationListenerAdapterImpl(listener));
58 }
59 } // namespace OHOS::ArkWeb
60