From 7ab02530ad5b221d050344bf1b4d54da37b946e9 Mon Sep 17 00:00:00 2001 From: majiajun <864428661@qq.com> Date: Sat, 15 Jan 2022 04:58:55 -0800 Subject: [PATCH] dms and aafwk decoupling Signed-off-by: majiajun <864428661@qq.com> Change-Id: Id6ee25e8a92e48dd9187f4826f8841934665b4f7 --- frameworks/kits/ability/native/BUILD.gn | 7 +- .../ability/native/include/ability_context.h | 2 - .../distributed/distributed_errors.h | 2 +- .../distributed_client.h | 66 ++-- .../distributed_parcel_helper.h | 112 ++++++ .../distributed/continuation_handler.cpp | 2 +- .../distributed/distributed_client.cpp | 87 ----- .../distributed_client.cpp | 350 ++++++++++++++++++ .../napi_mission_registration.h | 1 - services/abilitymgr/BUILD.gn | 5 +- .../include/ability_manager_service.h | 3 - .../src/ability_manager_service.cpp | 119 ++---- .../abilitymgr/src/pending_want_manager.cpp | 14 +- services/abilitymgr/test/BUILD.gn | 1 + .../ability_mgr_service_test/BUILD.gn | 1 + .../moduletest/ability_record_test/BUILD.gn | 1 + .../moduletest/ability_stack_test/BUILD.gn | 1 + 17 files changed, 542 insertions(+), 232 deletions(-) rename frameworks/kits/ability/native/include/{continuation/distributed => distributed_ability_runtime}/distributed_client.h (30%) create mode 100644 frameworks/kits/ability/native/include/distributed_ability_runtime/distributed_parcel_helper.h delete mode 100644 frameworks/kits/ability/native/src/continuation/distributed/distributed_client.cpp create mode 100644 frameworks/kits/ability/native/src/distributed_ability_runtime/distributed_client.cpp diff --git a/frameworks/kits/ability/native/BUILD.gn b/frameworks/kits/ability/native/BUILD.gn index 007284f5385..b261a5fdb01 100644 --- a/frameworks/kits/ability/native/BUILD.gn +++ b/frameworks/kits/ability/native/BUILD.gn @@ -42,6 +42,7 @@ config("ability_config") { "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", "//foundation/aafwk/standard/frameworks/kits/ability/native/include/continuation/remote_register_service", "//foundation/aafwk/standard/frameworks/kits/ability/native/include/continuation/distributed", + "//foundation/aafwk/standard/frameworks/kits/ability/native/include/distributed_ability_runtime", "//foundation/aafwk/standard/interfaces/innerkits/ability_manager/include/continuation", "//foundation/aafwk/standard/frameworks/kits/ability/native/include/continuation/kits", "//base/security/permission/interfaces/innerkits/permission_standard/permissionsdk/main/cpp/include", @@ -76,6 +77,7 @@ config("ability_public_config") { "//foundation/aafwk/standard/interfaces/innerkits/base/include/ohos/aafwk/base", "//foundation/aafwk/standard/frameworks/kits/ability/native/include/continuation/remote_register_service", "//foundation/aafwk/standard/frameworks/kits/ability/native/include/continuation/distributed", + "//foundation/aafwk/standard/frameworks/kits/ability/native/include/distributed_ability_runtime", "//foundation/aafwk/standard/interfaces/innerkits/ability_manager/include/continuation", "//base/global/resmgr_standard/interfaces/innerkits/include", "//foundation/aafwk/standard/frameworks/kits/ability/native/include/continuation/kits", @@ -91,7 +93,6 @@ ohos_shared_library("static_subscriber_ipc") { "${SUBSYSTEM_DIR}/include", "//base/notification/ces_standard/interfaces/innerkits/native/include", "//foundation/aafwk/standard/interfaces/innerkits/want/include/ohos/aafwk/content/", - "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr/include", ] sources = [ @@ -100,7 +101,6 @@ ohos_shared_library("static_subscriber_ipc") { ] deps = [ - "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr:distributedschedsvr", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", "//utils/native/base:utils", ] @@ -177,7 +177,6 @@ ohos_shared_library("abilitykit_native") { # "//foundation/aafwk/standard/interfaces/kits/napi/aafwk/featureAbility/napi_data_ability_helper.cpp", "${SUBSYSTEM_DIR}/src/continuation/distributed/continuation_handler.cpp", "${SUBSYSTEM_DIR}/src/continuation/distributed/continuation_manager.cpp", - "${SUBSYSTEM_DIR}/src/continuation/distributed/distributed_client.cpp", "${SUBSYSTEM_DIR}/src/continuation/distributed/reverse_continuation_scheduler_primary.cpp", "${SUBSYSTEM_DIR}/src/continuation/distributed/reverse_continuation_scheduler_primary_proxy.cpp", "${SUBSYSTEM_DIR}/src/continuation/distributed/reverse_continuation_scheduler_primary_stub.cpp", @@ -193,6 +192,7 @@ ohos_shared_library("abilitykit_native") { "${SUBSYSTEM_DIR}/src/continuation/remote_register_service/continuation_register_manager_proxy.cpp", "${SUBSYSTEM_DIR}/src/continuation/remote_register_service/remote_register_service_proxy.cpp", "${SUBSYSTEM_DIR}/src/continuation/remote_register_service/remote_register_service_stub.cpp", + "${SUBSYSTEM_DIR}/src/distributed_ability_runtime/distributed_client.cpp", "//foundation/aafwk/standard/frameworks/kits/appkit/native/ability_runtime/context/context_impl.cpp", "//foundation/aafwk/standard/frameworks/kits/appkit/native/ability_runtime/extension_context.cpp", "//foundation/aafwk/standard/frameworks/kits/appkit/native/ability_runtime/form_extension_context.cpp", @@ -263,7 +263,6 @@ ohos_shared_library("abilitykit_native") { public_deps = [ "//base/global/i18n_standard/frameworks/intl:intl_util", "//base/global/resmgr_standard/frameworks/resmgr:global_resmgr", - "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr:distributedschedsvr", "//foundation/graphic/standard:libwmclient", "//foundation/windowmanager/interfaces/kits/napi/window_runtime:window_native_kit", "//foundation/windowmanager/wm:libwm", diff --git a/frameworks/kits/ability/native/include/ability_context.h b/frameworks/kits/ability/native/include/ability_context.h index cffdb835c91..ea9ed057f97 100644 --- a/frameworks/kits/ability/native/include/ability_context.h +++ b/frameworks/kits/ability/native/include/ability_context.h @@ -20,8 +20,6 @@ #include "context_container.h" #include "data_ability_helper.h" -#include "distributed_sched_interface.h" -#include "distributed_sched_proxy.h" namespace OHOS { namespace AppExecFwk { diff --git a/frameworks/kits/ability/native/include/continuation/distributed/distributed_errors.h b/frameworks/kits/ability/native/include/continuation/distributed/distributed_errors.h index 87c236ab3e9..a00899655af 100644 --- a/frameworks/kits/ability/native/include/continuation/distributed/distributed_errors.h +++ b/frameworks/kits/ability/native/include/continuation/distributed/distributed_errors.h @@ -33,7 +33,7 @@ enum { // 2097153 GET_DISTRIBUTED_ABILITY_SERVICE_FAILED, // 2097154 - DISTRIBUTED_ABILITY_SERVICE_NOT_CONNECTED, + DISTRIBUTED_ABILITY_SERVICE_NOT_READY, // 2097155 INCOMING_PARAMETER_POINTER_IS_NULL, /** diff --git a/frameworks/kits/ability/native/include/continuation/distributed/distributed_client.h b/frameworks/kits/ability/native/include/distributed_ability_runtime/distributed_client.h similarity index 30% rename from frameworks/kits/ability/native/include/continuation/distributed/distributed_client.h rename to frameworks/kits/ability/native/include/distributed_ability_runtime/distributed_client.h index d340c456e8c..f0223d26a40 100644 --- a/frameworks/kits/ability/native/include/continuation/distributed/distributed_client.h +++ b/frameworks/kits/ability/native/include/distributed_ability_runtime/distributed_client.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -18,38 +18,54 @@ #include -#include -#include "ability.h" -#include "ability_info.h" +#include "mission_info.h" +#include "mission_snapshot.h" #include "want_params.h" #include "want.h" #include "iremote_broker.h" -#include "distributed_errors.h" - -#include "distributed_sched_proxy.h" namespace OHOS { -namespace AppExecFwk { -using namespace OHOS::DistributedSchedule; - +namespace AAFwk { class DistributedClient { public: - DistributedClient(); - virtual ~DistributedClient(); - static std::shared_ptr GetInstance(); - ErrCode Connect(); - ErrCode NotifyCompleteContinuation( - const std::u16string &devId, int32_t sessionId, bool isSuccess, const sptr &reverseScheduler); - + DistributedClient() = default; + virtual ~DistributedClient() = default; + int32_t StartRemoteAbility(const OHOS::AAFwk::Want& want, int32_t callerUid, int32_t requestCode); + int32_t ContinueMission(const std::string& srcDeviceId, const std::string& dstDeviceId, + int32_t missionId, const sptr& callback, const OHOS::AAFwk::WantParams& wantParams); + int32_t StartContinuation(const OHOS::AAFwk::Want& want, int32_t missionId, int32_t callerUid, + int32_t status); + int32_t NotifyCompleteContinuation(const std::u16string &devId, int32_t sessionId, bool isSuccess); + int32_t ConnectRemoteAbility(const OHOS::AAFwk::Want& want, + const sptr& connect, int32_t callerUid, int32_t callerPid); + int32_t DisconnectRemoteAbility(const sptr& connect); + int32_t StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag); + int32_t StopSyncRemoteMissions(const std::string& devId); + int32_t RegisterMissionListener(const std::u16string& devId, const sptr& obj); + int32_t UnRegisterMissionListener(const std::u16string& devId, const sptr& obj); + int32_t GetMissionInfos(const std::string& deviceId, int32_t numMissions, + std::vector& missionInfos); + int32_t GetRemoteMissionSnapshotInfo(const std::string& deviceId, int32_t missionId, + std::unique_ptr& missionSnapshot); + enum { + START_REMOTE_ABILITY = 1, + CONNECT_REMOTE_ABILITY = 6, + DISCONNECT_REMOTE_ABILITY = 7, + START_CONTINUATION = 11, + NOTIFY_COMPLETE_CONTINUATION = 12, + CONTINUE_MISSION = 36, + GET_MISSION_INFOS = 80, + REGISTER_MISSION_LISTENER = 84, + UNREGISTER_MISSION_LISTENER = 85, + START_SYNC_MISSIONS = 92, + STOP_SYNC_MISSIONS = 98, + GET_REMOTE_MISSION_SNAPSHOT_INFO = 99, + }; private: - static std::mutex mutex_; - static std::shared_ptr instance_; - sptr remoteObject_; - - std::shared_ptr dmsProxy_; + sptr GetDmsProxy(); + bool ReadMissionInfosFromParcel(Parcel& parcel, std::vector& missionInfos); }; - -} // namespace AppExecFwk +} // namespace AAFwk } // namespace OHOS -#endif \ No newline at end of file +#endif diff --git a/frameworks/kits/ability/native/include/distributed_ability_runtime/distributed_parcel_helper.h b/frameworks/kits/ability/native/include/distributed_ability_runtime/distributed_parcel_helper.h new file mode 100644 index 00000000000..13ce5241419 --- /dev/null +++ b/frameworks/kits/ability/native/include/distributed_ability_runtime/distributed_parcel_helper.h @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_DISTRIBUTED_PARCEL_HELPER_H +#define OHOS_DISTRIBUTED_PARCEL_HELPER_H + +#include + +#include "hilog_wrapper.h" + +namespace OHOS { +namespace AAFwk { +#define PARCEL_WRITE_HELPER(parcel, type, value) \ + do { \ + bool ret = parcel.Write##type((value)); \ + if (!ret) { \ + HILOG_ERROR("%{public}s write value failed!", __func__); \ + return ERR_FLATTEN_OBJECT; \ + } \ + } while (0) + +#define PARCEL_WRITE_HELPER_NORET(parcel, type, value) \ + do { \ + bool ret = parcel.Write##type((value)); \ + if (!ret) { \ + HILOG_ERROR("write value failed!"); \ + return; \ + } \ + } while (0) + +#define PARCEL_WRITE_HELPER_RET(parcel, type, value, failRet) \ + do { \ + bool ret = parcel.Write##type((value)); \ + if (!ret) { \ + HILOG_ERROR("%{public}s write value failed!", __func__); \ + return failRet; \ + } \ + } while (0) + +#define PARCEL_READ_HELPER(parcel, type, out) \ + do { \ + bool ret = parcel.Read##type((out)); \ + if (!ret) { \ + HILOG_ERROR("%{public}s read value failed!", __func__); \ + return ERR_FLATTEN_OBJECT; \ + } \ + } while (0) + +#define PARCEL_READ_HELPER_RET(parcel, type, out, failRet) \ + do { \ + bool ret = parcel.Read##type((out)); \ + if (!ret) { \ + HILOG_ERROR("%{public}s read value failed!", __func__); \ + return failRet; \ + } \ + } while (0) + +#define PARCEL_READ_HELPER_NORET(parcel, type, out) \ + do { \ + bool ret = parcel.Read##type((out)); \ + if (!ret) { \ + HILOG_WARN("%{public}s read value failed!", __func__); \ + } \ + } while (0) + +#define PARCEL_TRANSACT_SYNC_RET_INT(remote, code, data, reply) \ + do { \ + MessageOption option; \ + int32_t error = remote->SendRequest(code, data, reply, option); \ + if (error != ERR_NONE) { \ + HILOG_ERROR("%{public}s transact failed, error: %{public}d", __func__, error); \ + return error; \ + } \ + int32_t result = reply.ReadInt32(); \ + HILOG_INFO("%{public}s get result from server data = %{public}d", __func__, result); \ + return result; \ + } while (0) + +#define PARCEL_TRANSACT_SYNC_NORET(remote, code, data, reply) \ + do { \ + MessageOption option; \ + int32_t result = remote->SendRequest(code, data, reply, option); \ + if (result != ERR_NONE) { \ + HILOG_ERROR("%{public}s transact failed, result: %{public}d", __func__, result); \ + return; \ + } \ + HILOG_DEBUG("%{public}s transact success!", __func__); \ + } while (0) + +#define PARCEL_WRITE_REPLY_NOERROR(reply, type, result) \ + do { \ + bool ret = reply.Write##type(result); \ + if (!ret) { \ + HILOG_WARN("%{public}s write reply failed.", __func__); \ + } \ + return ERR_NONE; \ + } while (0) +} // namespace AAFwk +} // namespace OHOS +#endif /* OHOS_DISTRIBUTED_PARCEL_HELPER_H */ diff --git a/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp b/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp index e17a54cc5d0..b2accd0050f 100644 --- a/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp +++ b/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp @@ -16,7 +16,7 @@ #include "ability_manager_client.h" #include "app_log_wrapper.h" -#include "distributed_client.h" +#include "distributed_errors.h" #include "element_name.h" using OHOS::AAFwk::WantParams; diff --git a/frameworks/kits/ability/native/src/continuation/distributed/distributed_client.cpp b/frameworks/kits/ability/native/src/continuation/distributed/distributed_client.cpp deleted file mode 100644 index 14bace8ba43..00000000000 --- a/frameworks/kits/ability/native/src/continuation/distributed/distributed_client.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include "distributed_client.h" - -#include "app_log_wrapper.h" -#include "if_system_ability_manager.h" -#include "ipc_skeleton.h" -#include "iservice_registry.h" -#include "system_ability_definition.h" - -namespace OHOS { -namespace AppExecFwk { -std::shared_ptr DistributedClient::instance_ = nullptr; -std::mutex DistributedClient::mutex_; - -std::shared_ptr DistributedClient::GetInstance() -{ - if (instance_ == nullptr) { - std::lock_guard lock(mutex_); - if (instance_ == nullptr) { - instance_ = std::make_shared(); - } - } - return instance_; -} - -DistributedClient::DistributedClient() -{} - -DistributedClient::~DistributedClient() -{} - -ErrCode DistributedClient::Connect() -{ - APP_LOGI("%{public}s called begin", __func__); - std::lock_guard lock(mutex_); - - if (remoteObject_ == nullptr) { - sptr systemManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - if (systemManager == nullptr) { - APP_LOGE("%{public}s:fail to get System Ability Manager", __func__); - return GET_SYSTEM_ABILITY_SERVICE_FAILED; - } - remoteObject_ = systemManager->GetSystemAbility(DISTRIBUTED_SCHED_SA_ID); - if (remoteObject_ == nullptr) { - APP_LOGE("%{public}s:fail to get Distributed Ability Service", __func__); - return GET_DISTRIBUTED_ABILITY_SERVICE_FAILED; - } - } - - if (dmsProxy_ == nullptr) { - dmsProxy_ = std::make_shared(remoteObject_); - } - - APP_LOGI("%{public}s called end", __func__); - return ERR_OK; -} - -ErrCode DistributedClient::NotifyCompleteContinuation( - const std::u16string &devId, int32_t sessionId, bool isSuccess, const sptr &reverseScheduler) -{ - APP_LOGI("%{public}s called", __func__); - if (remoteObject_ == nullptr) { - ErrCode err = Connect(); - if (err != ERR_OK) { - return DISTRIBUTED_ABILITY_SERVICE_NOT_CONNECTED; - } - } - - // there need a params for reverseScheduler - dmsProxy_->NotifyCompleteContinuation(devId, sessionId, isSuccess); - return 0; -} -} // namespace AppExecFwk -} // namespace OHOS diff --git a/frameworks/kits/ability/native/src/distributed_ability_runtime/distributed_client.cpp b/frameworks/kits/ability/native/src/distributed_ability_runtime/distributed_client.cpp new file mode 100644 index 00000000000..5cf8c6277f5 --- /dev/null +++ b/frameworks/kits/ability/native/src/distributed_ability_runtime/distributed_client.cpp @@ -0,0 +1,350 @@ +/* + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "distributed_client.h" + +#include "distributed_parcel_helper.h" +#include "if_system_ability_manager.h" +#include "ipc_skeleton.h" +#include "iservice_registry.h" +#include "string_ex.h" +#include "system_ability_definition.h" + +namespace OHOS { +namespace AAFwk { +namespace { +const std::u16string DMS_PROXY_INTERFACE_TOKEN = u"ohos.distributedschedule.accessToken"; +} +sptr DistributedClient::GetDmsProxy() +{ + auto samgrProxy = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + if (samgrProxy == nullptr) { + HILOG_ERROR("fail to get samgr."); + return nullptr; + } + return samgrProxy->GetSystemAbility(DISTRIBUTED_SCHED_SA_ID); +} + +int32_t DistributedClient::StartRemoteAbility(const OHOS::AAFwk::Want& want, + int32_t callerUid, int32_t requestCode) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + return ERR_NULL_OBJECT; + } + MessageParcel data; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, Parcelable, &want); + PARCEL_WRITE_HELPER(data, Int32, callerUid); + PARCEL_WRITE_HELPER(data, Int32, requestCode); + MessageParcel reply; + PARCEL_TRANSACT_SYNC_RET_INT(remote, START_REMOTE_ABILITY, data, reply); +} + +int32_t DistributedClient::ConnectRemoteAbility(const OHOS::AAFwk::Want& want, + const sptr& connect, int32_t callerUid, int32_t callerPid) +{ + HILOG_INFO("called"); + if (connect == nullptr) { + HILOG_ERROR("ConnectRemoteAbility connect is null"); + return ERR_NULL_OBJECT; + } + + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("ConnectRemoteAbility remote is null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, Parcelable, &want); + PARCEL_WRITE_HELPER(data, RemoteObject, connect); + PARCEL_WRITE_HELPER(data, Int32, callerUid); + PARCEL_WRITE_HELPER(data, Int32, callerPid); + MessageParcel reply; + PARCEL_TRANSACT_SYNC_RET_INT(remote, CONNECT_REMOTE_ABILITY, data, reply); +} + +int32_t DistributedClient::DisconnectRemoteAbility(const sptr& connect) +{ + HILOG_INFO("called"); + if (connect == nullptr) { + HILOG_ERROR("DisconnectRemoteAbility connect is null"); + return ERR_NULL_OBJECT; + } + + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("DisconnectRemoteAbility remote is null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, RemoteObject, connect); + MessageParcel reply; + PARCEL_TRANSACT_SYNC_RET_INT(remote, DISCONNECT_REMOTE_ABILITY, data, reply); +} + +int32_t DistributedClient::ContinueMission(const std::string& srcDeviceId, const std::string& dstDeviceId, + int32_t missionId, const sptr& callback, const OHOS::AAFwk::WantParams& wantParams) +{ + HILOG_INFO("called"); + if (callback == nullptr) { + HILOG_ERROR("ContinueMission callback null"); + return ERR_NULL_OBJECT; + } + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("ContinueMission remote service null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, String, srcDeviceId); + PARCEL_WRITE_HELPER(data, String, dstDeviceId); + PARCEL_WRITE_HELPER(data, Int32, missionId); + PARCEL_WRITE_HELPER(data, RemoteObject, callback); + PARCEL_WRITE_HELPER(data, Parcelable, &wantParams); + MessageParcel reply; + PARCEL_TRANSACT_SYNC_RET_INT(remote, CONTINUE_MISSION, data, reply); +} + +int32_t DistributedClient::StartContinuation(const OHOS::AAFwk::Want& want, int32_t missionId, int32_t callerUid, + int32_t status) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("StartContinuation remote service null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, Parcelable, &want); + PARCEL_WRITE_HELPER(data, Int32, missionId); + PARCEL_WRITE_HELPER(data, Int32, callerUid); + PARCEL_WRITE_HELPER(data, Int32, status); + MessageParcel reply; + PARCEL_TRANSACT_SYNC_RET_INT(remote, START_CONTINUATION, data, reply); +} + +ErrCode DistributedClient::NotifyCompleteContinuation( + const std::u16string &devId, int32_t sessionId, bool isSuccess) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("NotifyCompleteContinuation remote service null"); + return ERR_NULL_OBJECT; + } + + MessageParcel data; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + if (!data.WriteString16(devId)) { + HILOG_ERROR("write deviceId error"); + return ERR_FLATTEN_OBJECT; + } + if (!data.WriteInt32(sessionId)) { + HILOG_ERROR("write sessionId error"); + return ERR_FLATTEN_OBJECT; + } + if (!data.WriteBool(isSuccess)) { + HILOG_ERROR("write result error"); + return ERR_FLATTEN_OBJECT; + } + MessageParcel reply; + MessageOption option; + int32_t result = remote->SendRequest(NOTIFY_COMPLETE_CONTINUATION, data, reply, option); + if (result != ERR_NONE) { + HILOG_ERROR("SendRequest failed, result = %{public}d", result); + return result; + } + return ERR_OK; +} + +int32_t DistributedClient::StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("remote system abiity is null"); + return ERR_NULL_OBJECT; + } + + MessageParcel data; + MessageParcel reply; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, String16, Str8ToStr16(devId)); + PARCEL_WRITE_HELPER(data, Bool, fixConflict); + PARCEL_WRITE_HELPER(data, Int64, tag); + PARCEL_TRANSACT_SYNC_RET_INT(remote, START_SYNC_MISSIONS, data, reply); +} + +int32_t DistributedClient::StopSyncRemoteMissions(const std::string& devId) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("remote system abiity is null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + MessageParcel reply; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, String16, Str8ToStr16(devId)); + PARCEL_TRANSACT_SYNC_RET_INT(remote, STOP_SYNC_MISSIONS, data, reply); +} + +int32_t DistributedClient::RegisterMissionListener(const std::u16string& devId, + const sptr& obj) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("remote system ablity is null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + MessageParcel reply; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, String16, devId); + PARCEL_WRITE_HELPER(data, RemoteObject, obj); + PARCEL_TRANSACT_SYNC_RET_INT(remote, REGISTER_MISSION_LISTENER, data, reply); +} + +int32_t DistributedClient::UnRegisterMissionListener(const std::u16string& devId, + const sptr& obj) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("remote system abiity is null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + MessageParcel reply; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, String16, devId); + PARCEL_WRITE_HELPER(data, RemoteObject, obj); + PARCEL_TRANSACT_SYNC_RET_INT(remote, UNREGISTER_MISSION_LISTENER, data, reply); +} + +int32_t DistributedClient::GetMissionInfos(const std::string& deviceId, int32_t numMissions, + std::vector& missionInfos) +{ + HILOG_INFO("called"); + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("remote system abiity is null"); + return ERR_NULL_OBJECT; + } + + MessageParcel data; + MessageParcel reply; + MessageOption option; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, String16, Str8ToStr16(deviceId)); + PARCEL_WRITE_HELPER(data, Int32, numMissions); + int32_t ret = remote->SendRequest(GET_MISSION_INFOS, data, reply, option); + if (ret != ERR_NONE) { + HILOG_WARN("sendRequest fail, error: %{public}d", ret); + return ret; + } + return ReadMissionInfosFromParcel(reply, missionInfos) ? ERR_NONE : ERR_FLATTEN_OBJECT; +} + +int32_t DistributedClient::GetRemoteMissionSnapshotInfo(const std::string& deviceId, int32_t missionId, + std::unique_ptr& missionSnapshot) +{ + if (deviceId.empty()) { + HILOG_ERROR("deviceId is null"); + return ERR_NULL_OBJECT; + } + sptr remote = GetDmsProxy(); + if (remote == nullptr) { + HILOG_ERROR("remote is null"); + return ERR_NULL_OBJECT; + } + MessageParcel data; + if (!data.WriteInterfaceToken(DMS_PROXY_INTERFACE_TOKEN)) { + return ERR_FLATTEN_OBJECT; + } + PARCEL_WRITE_HELPER(data, String, deviceId); + PARCEL_WRITE_HELPER(data, Int32, missionId); + MessageParcel reply; + MessageOption option; + int32_t error = remote->SendRequest(GET_REMOTE_MISSION_SNAPSHOT_INFO, data, reply, option); + if (error != ERR_NONE) { + HILOG_ERROR("transact failed, error: %{public}d", error); + return error; + } + std::unique_ptr missionSnapshotPtr(reply.ReadParcelable()); + missionSnapshot = std::move(missionSnapshotPtr); + return ERR_NONE; +} + +bool DistributedClient::ReadMissionInfosFromParcel(Parcel& parcel, + std::vector& missionInfos) +{ + int32_t hasMissions = parcel.ReadInt32(); + if (hasMissions == 1) { + int32_t len = parcel.ReadInt32(); + HILOG_DEBUG("readLength is:%{public}d", len); + if (len < 0) { + return false; + } + size_t size = static_cast(len); + if ((size > parcel.GetReadableBytes()) || (missionInfos.max_size() < size)) { + HILOG_ERROR("Failed to read MissionInfo vector, size = %{public}zu", size); + return false; + } + missionInfos.clear(); + for (size_t i = 0; i < size; i++) { + AAFwk::MissionInfo *ptr = parcel.ReadParcelable(); + if (ptr == nullptr) { + HILOG_WARN("read MissionInfo failed"); + return false; + } + missionInfos.emplace_back(*ptr); + delete ptr; + } + } + HILOG_INFO("info size is:%{public}zu", missionInfos.size()); + return true; +} +} // namespace AAFwk +} // namespace OHOS diff --git a/interfaces/kits/napi/aafwk/mission_manager/napi_mission_registration.h b/interfaces/kits/napi/aafwk/mission_manager/napi_mission_registration.h index 4e7ad52734e..2b81cf88099 100644 --- a/interfaces/kits/napi/aafwk/mission_manager/napi_mission_registration.h +++ b/interfaces/kits/napi/aafwk/mission_manager/napi_mission_registration.h @@ -18,7 +18,6 @@ #include -#include "distributed_sched_interface.h" #include "mission_continue_interface.h" #include "mission_continue_stub.h" #include "napi/native_api.h" diff --git a/services/abilitymgr/BUILD.gn b/services/abilitymgr/BUILD.gn index 9df810615a0..0ba2d9028b5 100755 --- a/services/abilitymgr/BUILD.gn +++ b/services/abilitymgr/BUILD.gn @@ -108,10 +108,7 @@ ohos_shared_library("abilityms") { "ipc:ipc_core", ] - public_deps = [ - "//foundation/distributedschedule/dmsfwk/services/dtbschedmgr:distributedschedsvr", - "//foundation/graphic/standard:libwmservice", - ] + public_deps = [ "//foundation/graphic/standard:libwmservice" ] subsystem_name = "aafwk" part_name = "ability_runtime" diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index 1eef5b5ca3a..89b3e523b98 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -29,8 +29,6 @@ #include "bundlemgr/bundle_mgr_interface.h" #include "bundle_constants.h" #include "data_ability_manager.h" -#include "distributed_sched_interface.h" -#include "distributed_sched_proxy.h" #include "hilog_wrapper.h" #include "iremote_object.h" #include "kernal_ability_manager.h" @@ -856,7 +854,6 @@ private: */ void GetGlobalConfiguration(); - sptr GetDmsProxy(); sptr GetBundleManager(); int StartRemoteAbility(const Want &want, int requestCode); int ConnectLocalAbility( diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 94d8b8364e9..1296a70b9ce 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -30,6 +30,7 @@ #include "bytrace.h" #include "bundle_mgr_client.h" #include "configuration_distributor.h" +#include "distributed_client.h" #include "hilog_wrapper.h" #include "if_system_ability_manager.h" #include "ipc_skeleton.h" @@ -461,14 +462,10 @@ int AbilityManagerService::StartRemoteAbility(const Want &want, int requestCode) { HILOG_INFO("%{public}s", __func__); want.DumpInfo(0); - sptr dms = GetDmsProxy(); - if (dms == nullptr) { - HILOG_ERROR("AbilityManagerService::StartAbility failed to get dms."); - return ERR_INVALID_VALUE; - } int32_t callerUid = IPCSkeleton::GetCallingUid(); + DistributedClient dmsClient; HILOG_INFO("AbilityManagerService::Try to StartRemoteAbility, callerUid = %{public}d", callerUid); - int result = dms->StartRemoteAbility(want, callerUid, requestCode); + int result = dmsClient.StartRemoteAbility(want, callerUid, requestCode); if (result != ERR_NONE) { HILOG_ERROR("AbilityManagerService::StartRemoteAbility failed, result = %{public}d", result); } @@ -508,22 +505,6 @@ bool AbilityManagerService::CheckIfOperateRemote(const Want &want) return true; } -sptr AbilityManagerService::GetDmsProxy() -{ - HILOG_INFO("%{public}s begin.", __func__); - auto remoteObject = - OHOS::DelayedSingleton::GetInstance()->GetSystemAbility(DISTRIBUTED_SCHED_SA_ID); - if (remoteObject == nullptr) { - HILOG_ERROR("failed to get dms service"); - return nullptr; - } - HILOG_INFO("get dms proxy success."); - sptr dmsProxy = - iface_cast(remoteObject); - HILOG_INFO("%{public}s end.", __func__); - return dmsProxy; -} - bool AbilityManagerService::GetLocalDeviceId(std::string& localDeviceId) { auto localNode = std::make_unique(); @@ -856,14 +837,10 @@ int AbilityManagerService::ConnectLocalAbility( int AbilityManagerService::ConnectRemoteAbility(const Want &want, const sptr &connect) { HILOG_INFO("%{public}s begin ConnectAbilityRemote", __func__); - sptr dms = GetDmsProxy(); - if (dms == nullptr) { - HILOG_ERROR("AbilityManagerService::ConnectRemoteAbility failed to get dms."); - return ERR_INVALID_VALUE; - } int32_t callerUid = IPCSkeleton::GetCallingUid(); int32_t callerPid = IPCSkeleton::GetCallingPid(); - return dms->ConnectRemoteAbility(want, connect, callerUid, callerPid); + DistributedClient dmsClient; + return dmsClient.ConnectRemoteAbility(want, connect, callerUid, callerPid); } int AbilityManagerService::DisconnectLocalAbility(const sptr &connect) @@ -875,12 +852,8 @@ int AbilityManagerService::DisconnectLocalAbility(const sptr int AbilityManagerService::DisconnectRemoteAbility(const sptr &connect) { HILOG_INFO("%{public}s begin DisconnectAbilityRemote", __func__); - sptr dms = GetDmsProxy(); - if (dms == nullptr) { - HILOG_ERROR("AbilityManagerService::DisconnectRemoteAbility failed to get dms."); - return ERR_INVALID_VALUE; - } - return dms->DisconnectRemoteAbility(connect); + DistributedClient dmsClient; + return dmsClient.DisconnectRemoteAbility(connect); } int AbilityManagerService::ContinueMission(const std::string &srcDeviceId, const std::string &dstDeviceId, @@ -888,13 +861,8 @@ int AbilityManagerService::ContinueMission(const std::string &srcDeviceId, const { HILOG_INFO("ContinueMission srcDeviceId: %{public}s, dstDeviceId: %{public}s, missionId: %{public}d", srcDeviceId.c_str(), dstDeviceId.c_str(), missionId); - - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("ContinueMission failed to get dms."); - return ERR_INVALID_VALUE; - } - return dmsProxy->ContinueMission(srcDeviceId, dstDeviceId, missionId, callBack, wantParams); + DistributedClient dmsClient; + return dmsClient.ContinueMission(srcDeviceId, dstDeviceId, missionId, callBack, wantParams); } int AbilityManagerService::ContinueAbility(const std::string &deviceId, int32_t missionId) @@ -921,18 +889,13 @@ int AbilityManagerService::StartContinuation(const Want &want, const sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("AbilityManagerService::StartContinuation failed to get dms."); - return ERR_INVALID_VALUE; - } int32_t missionId = GetMissionIdByAbilityToken(abilityToken); if (missionId == -1) { HILOG_ERROR("AbilityManagerService::StartContinuation failed to get missionId."); return ERR_INVALID_VALUE; } - auto result = dmsProxy->StartContinuation(want, missionId, appUid, status); + DistributedClient dmsClient; + auto result = dmsClient.StartContinuation(want, missionId, appUid, status); if (result != ERR_OK) { HILOG_ERROR("StartContinuation failed, result = %{public}d, notify caller", result); NotifyContinuationResult(missionId, result); @@ -944,13 +907,8 @@ void AbilityManagerService::NotifyCompleteContinuation(const std::string &device int32_t sessionId, bool isSuccess) { HILOG_INFO("NotifyCompleteContinuation."); - - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("AbilityManagerService::NotifyCompleteContinuation failed to get dms."); - return; - } - dmsProxy->NotifyCompleteContinuation(Str8ToStr16(deviceId), sessionId, isSuccess); + DistributedClient dmsClient; + dmsClient.NotifyCompleteContinuation(Str8ToStr16(deviceId), sessionId, isSuccess); } int AbilityManagerService::NotifyContinuationResult(int32_t missionId, const int32_t result) @@ -969,22 +927,14 @@ int AbilityManagerService::NotifyContinuationResult(int32_t missionId, const int int AbilityManagerService::StartSyncRemoteMissions(const std::string& devId, bool fixConflict, int64_t tag) { - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("AbilityManagerService::StartSyncRemoteMissions failed to get dms."); - return ERR_INVALID_VALUE; - } - return dmsProxy->StartSyncRemoteMissions(devId, fixConflict, tag); + DistributedClient dmsClient; + return dmsClient.StartSyncRemoteMissions(devId, fixConflict, tag); } int AbilityManagerService::StopSyncRemoteMissions(const std::string& devId) { - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("AbilityManagerService::StopSyncRemoteMissions failed to get dms."); - return ERR_INVALID_VALUE; - } - return dmsProxy->StopSyncRemoteMissions(devId); + DistributedClient dmsClient; + return dmsClient.StopSyncRemoteMissions(devId); } int AbilityManagerService::RegisterMissionListener(const std::string &deviceId, @@ -996,12 +946,8 @@ int AbilityManagerService::RegisterMissionListener(const std::string &deviceId, return REGISTER_REMOTE_MISSION_LISTENER_FAIL; } CHECK_POINTER_AND_RETURN(listener, ERR_INVALID_VALUE); - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("AbilityManagerService::RegisterMissionListener failed to get dms."); - return ERR_INVALID_VALUE; - } - return dmsProxy->RegisterMissionListener(Str8ToStr16(deviceId), listener->AsObject()); + DistributedClient dmsClient; + return dmsClient.RegisterMissionListener(Str8ToStr16(deviceId), listener->AsObject()); } int AbilityManagerService::UnRegisterMissionListener(const std::string &deviceId, @@ -1013,12 +959,8 @@ int AbilityManagerService::UnRegisterMissionListener(const std::string &deviceId return REGISTER_REMOTE_MISSION_LISTENER_FAIL; } CHECK_POINTER_AND_RETURN(listener, ERR_INVALID_VALUE); - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("AbilityManagerService::UnRegisterMissionListener failed to get dms."); - return ERR_INVALID_VALUE; - } - return dmsProxy->UnRegisterMissionListener(Str8ToStr16(deviceId), listener->AsObject()); + DistributedClient dmsClient; + return dmsClient.UnRegisterMissionListener(Str8ToStr16(deviceId), listener->AsObject()); } void AbilityManagerService::RemoveAllServiceRecord() @@ -1271,18 +1213,13 @@ int AbilityManagerService::GetRemoteMissionInfos(const std::string& deviceId, in std::vector &missionInfos) { HILOG_INFO("GetRemoteMissionInfos begin"); - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("GetRemoteMissionInfos failed to get dms."); - return ERR_INVALID_VALUE; - } - std::vector dstbMissionInfos; - int result = dmsProxy->GetMissionInfos(deviceId, numMax, dstbMissionInfos); + DistributedClient dmsClient; + int result = dmsClient.GetMissionInfos(deviceId, numMax, missionInfos); if (result != ERR_OK) { HILOG_ERROR("GetRemoteMissionInfos failed, result = %{public}d", result); return result; } - return DistributedSchedule::MissionInfoConverter::ConvertToMissionInfos(dstbMissionInfos, missionInfos); + return ERR_OK; } int AbilityManagerService::GetMissionInfo(const std::string& deviceId, int32_t missionId, @@ -2901,13 +2838,9 @@ int32_t AbilityManagerService::GetRemoteMissionSnapshotInfo(const std::string& d MissionSnapshot& missionSnapshot) { HILOG_INFO("GetRemoteMissionSnapshotInfo begin"); - sptr dmsProxy = GetDmsProxy(); - if (dmsProxy == nullptr) { - HILOG_ERROR("GetRemoteMissionSnapshotInfo failed to get dms."); - return ERR_INVALID_VALUE; - } std::unique_ptr missionSnapshotPtr = std::make_unique(); - int result = dmsProxy->GetRemoteMissionSnapshotInfo(deviceId, missionId, missionSnapshotPtr); + DistributedClient dmsClient; + int result = dmsClient.GetRemoteMissionSnapshotInfo(deviceId, missionId, missionSnapshotPtr); if (result != ERR_OK) { HILOG_ERROR("GetRemoteMissionSnapshotInfo failed, result = %{public}d", result); return result; diff --git a/services/abilitymgr/src/pending_want_manager.cpp b/services/abilitymgr/src/pending_want_manager.cpp index 6cf39e8faf2..2517a73a10c 100644 --- a/services/abilitymgr/src/pending_want_manager.cpp +++ b/services/abilitymgr/src/pending_want_manager.cpp @@ -21,9 +21,8 @@ #include "ability_manager_service.h" #include "ability_util.h" +#include "distributed_client.h" #include "hilog_wrapper.h" -#include "distributed_sched_interface.h" -#include "distributed_sched_proxy.h" namespace OHOS { namespace AAFwk { @@ -235,15 +234,8 @@ int32_t PendingWantManager::DeviceIdDetermine( result = ERR_INVALID_VALUE; return result; } - - auto dms = iface_cast(remoteObject); - if (dms == nullptr) { - result = ERR_INVALID_VALUE; - HILOG_ERROR("It wants to start a remote ability, but failed to get dms."); - return result; - } - - result = dms->StartRemoteAbility(want, callerUid, requestCode); + DistributedClient dmsClient; + result = dmsClient.StartRemoteAbility(want, callerUid, requestCode); if (result != ERR_OK) { HILOG_ERROR("%{public}s: StartRemoteAbility Error! result = %{public}d", __func__, result); } diff --git a/services/abilitymgr/test/BUILD.gn b/services/abilitymgr/test/BUILD.gn index fec48217a80..8810db14e1f 100644 --- a/services/abilitymgr/test/BUILD.gn +++ b/services/abilitymgr/test/BUILD.gn @@ -100,6 +100,7 @@ ohos_source_set("abilityms_test_source") { "${services_path}/abilitymgr/test/mock/libs/appexecfwk_core", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy/include", "//foundation/aafwk/standard/interfaces/innerkits/app_manager/include/appmgr", + "//foundation/aafwk/standard/frameworks/kits/ability/native/include/distributed_ability_runtime", "//foundation/aafwk/standard/interfaces/innerkits/dataobs_manager/include", "//base/account/os_account/frameworks/common/account_error/include", "//base/account/os_account/frameworks/common/database/include", diff --git a/services/test/moduletest/ability_mgr_service_test/BUILD.gn b/services/test/moduletest/ability_mgr_service_test/BUILD.gn index 0ab7448f001..aeac3912c01 100644 --- a/services/test/moduletest/ability_mgr_service_test/BUILD.gn +++ b/services/test/moduletest/ability_mgr_service_test/BUILD.gn @@ -22,6 +22,7 @@ ohos_moduletest("ability_mgr_module_test") { include_dirs = [ "${services_path}/test/mock/include", "//third_party/jsoncpp/include", + "//foundation/aafwk/standard/frameworks/kits/ability/native/include/distributed_ability_runtime", "//foundation/aafwk/standard/interfaces/innerkits/dataobs_manager/include", ] diff --git a/services/test/moduletest/ability_record_test/BUILD.gn b/services/test/moduletest/ability_record_test/BUILD.gn index 185ddd26174..2dcc730420b 100644 --- a/services/test/moduletest/ability_record_test/BUILD.gn +++ b/services/test/moduletest/ability_record_test/BUILD.gn @@ -24,6 +24,7 @@ ohos_moduletest("AbilityRecordModuleTest") { "${EVENT_DIR}/frameworks/core/include", "${EVENT_DIR}/interfaces/innerkits/native/include", "//third_party/jsoncpp/include", + "//foundation/aafwk/standard/frameworks/kits/ability/native/include/distributed_ability_runtime", "//foundation/aafwk/standard/interfaces/innerkits/dataobs_manager/include", ] diff --git a/services/test/moduletest/ability_stack_test/BUILD.gn b/services/test/moduletest/ability_stack_test/BUILD.gn index c9aa853486a..d1eb94eff9e 100644 --- a/services/test/moduletest/ability_stack_test/BUILD.gn +++ b/services/test/moduletest/ability_stack_test/BUILD.gn @@ -22,6 +22,7 @@ ohos_moduletest("ability_stack_module_test") { include_dirs = [ "${services_path}/test/mock/include", "//third_party/jsoncpp/include", + "//foundation/aafwk/standard/frameworks/kits/ability/native/include/distributed_ability_runtime", "//foundation/aafwk/standard/interfaces/innerkits/dataobs_manager/include", ] -- Gitee