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