From ba7859e4affbaf9f648a0777d926b7a5567fea8f Mon Sep 17 00:00:00 2001 From: txl Date: Wed, 17 Jan 2024 12:48:10 +0800 Subject: [PATCH 1/4] googletest_1.13.0 Signed-off-by: txl --- utils/test/unittest/common/eventbus/event_bus_test.cpp | 1 - utils/test/unittest/common/eventbus/event_bus_test.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/test/unittest/common/eventbus/event_bus_test.cpp b/utils/test/unittest/common/eventbus/event_bus_test.cpp index 400eafef..78b2b81c 100644 --- a/utils/test/unittest/common/eventbus/event_bus_test.cpp +++ b/utils/test/unittest/common/eventbus/event_bus_test.cpp @@ -15,7 +15,6 @@ #include "event_bus_test.h" -#include #include #include #include diff --git a/utils/test/unittest/common/eventbus/event_bus_test.h b/utils/test/unittest/common/eventbus/event_bus_test.h index 3d953e75..e3be69e1 100644 --- a/utils/test/unittest/common/eventbus/event_bus_test.h +++ b/utils/test/unittest/common/eventbus/event_bus_test.h @@ -17,6 +17,7 @@ #define OHOS_DISTRIBUTED_HARDWARE_EVENT_BUS_TEST_H #include +#include #include #include -- Gitee From e29b1321e6f1ab6d6649da409825ec64f449aa36 Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Sat, 27 Jan 2024 19:01:37 +0800 Subject: [PATCH 2/4] modify hot plugin trigger system awake problem Signed-off-by: hwzhangchuang --- bundle.json | 3 +- .../distributedhardwarefwkservice/BUILD.gn | 1 + .../include/utils/dh_context.h | 20 ++++++++- .../plugin_listener_impl.cpp | 8 ++++ .../src/utils/dh_context.cpp | 41 +++++++++++++++++++ 5 files changed, 70 insertions(+), 3 deletions(-) diff --git a/bundle.json b/bundle.json index 2bcebbe9..034171df 100644 --- a/bundle.json +++ b/bundle.json @@ -50,7 +50,8 @@ "graphic_2d", "graphic_surface", "media_foundation", - "bounds_checking_function" + "bounds_checking_function", + "power_manager" ], "third_party": [ "json", diff --git a/services/distributedhardwarefwkservice/BUILD.gn b/services/distributedhardwarefwkservice/BUILD.gn index 117a506a..8074d244 100644 --- a/services/distributedhardwarefwkservice/BUILD.gn +++ b/services/distributedhardwarefwkservice/BUILD.gn @@ -130,6 +130,7 @@ ohos_shared_library("distributedhardwarefwksvr") { "init:libbegetutil", "ipc:ipc_core", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", "resource_schedule_service:ressched_client", "safwk:system_ability_fwk", "samgr:samgr_proxy", diff --git a/services/distributedhardwarefwkservice/include/utils/dh_context.h b/services/distributedhardwarefwkservice/include/utils/dh_context.h index a62afa03..c7869ea0 100644 --- a/services/distributedhardwarefwkservice/include/utils/dh_context.h +++ b/services/distributedhardwarefwkservice/include/utils/dh_context.h @@ -16,11 +16,15 @@ #ifndef OHOS_DISTRIBUTED_HARDWARE_DHCONTEXT_H #define OHOS_DISTRIBUTED_HARDWARE_DHCONTEXT_H +#include #include #include #include #include +#include "power_mgr_client.h" +#include "power_state_callback_stub.h" + #include "device_type.h" #include "event_handler.h" #include "single_instance.h" @@ -55,18 +59,30 @@ public: }; std::shared_ptr GetEventHandler(); + bool IsSleeping(); + void SetIsSleeping(bool isSleeping); + +private: + class DHFWKPowerStateCallback : public OHOS::PowerMgr::PowerStateCallbackStub { + public: + void OnPowerStateChanged(OHOS::PowerMgr::PowerState state) override; + }; + void RegisterPowerStateLinstener(); + private: DeviceInfo devInfo_ { "", "", "", 0 }; std::mutex devMutex_; /* Save online device uuid and networkId */ - std::unordered_map onlineDeviceMap_; + std::unordered_map onlineDeviceMap_ = {}; /* Save online device hashed uuid and uuid */ - std::unordered_map deviceIdUUIDMap_; + std::unordered_map deviceIdUUIDMap_ = {}; std::shared_mutex onlineDevMutex_; std::shared_ptr eventHandler_; + /* true for system in sleeping, false for NOT in sleeping */ + std::atomic isSleeping_ = false; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/distributedhardwarefwkservice/src/localhardwaremanager/plugin_listener_impl.cpp b/services/distributedhardwarefwkservice/src/localhardwaremanager/plugin_listener_impl.cpp index fe50486f..5424af28 100644 --- a/services/distributedhardwarefwkservice/src/localhardwaremanager/plugin_listener_impl.cpp +++ b/services/distributedhardwarefwkservice/src/localhardwaremanager/plugin_listener_impl.cpp @@ -36,6 +36,10 @@ void PluginListenerImpl::PluginHardware(const std::string &dhId, const std::stri return; } DHLOGI("plugin start, dhId: %s", GetAnonyString(dhId).c_str()); + if (DHContext::GetInstance().IsSleeping()) { + DHLOGI("System is in sleeping, drop it"); + return; + } std::vector> capabilityInfos; std::string deviceId = DHContext::GetInstance().GetDeviceInfo().deviceId; std::string devName = DHContext::GetInstance().GetDeviceInfo().deviceName; @@ -56,6 +60,10 @@ void PluginListenerImpl::UnPluginHardware(const std::string &dhId) return; } DHLOGI("unplugin start, dhId: %s", GetAnonyString(dhId).c_str()); + if (DHContext::GetInstance().IsSleeping()) { + DHLOGI("System is in sleeping, drop it"); + return; + } std::string deviceId = DHContext::GetInstance().GetDeviceInfo().deviceId; std::shared_ptr capability = nullptr; auto ret = CapabilityInfoManager::GetInstance()->GetCapability(deviceId, dhId, capability); diff --git a/services/distributedhardwarefwkservice/src/utils/dh_context.cpp b/services/distributedhardwarefwkservice/src/utils/dh_context.cpp index 57c066c9..0deec491 100644 --- a/services/distributedhardwarefwkservice/src/utils/dh_context.cpp +++ b/services/distributedhardwarefwkservice/src/utils/dh_context.cpp @@ -30,6 +30,7 @@ DHContext::DHContext() DHLOGI("Ctor DHContext"); std::shared_ptr runner = AppExecFwk::EventRunner::Create(true); eventHandler_ = std::make_shared(runner); + RegisterPowerStateLinstener(); } DHContext::~DHContext() @@ -37,6 +38,46 @@ DHContext::~DHContext() DHLOGI("Dtor DHContext"); } +void DHContext::RegisterPowerStateLinstener() +{ + sptr powerStateCallback_(new DHFWKPowerStateCallback()); + if (powerStateCallback_ == nullptr) { + DHLOGE("DHFWK subscribe create power state callback Create Error"); + return; + } + + bool ret = PowerMgr::PowerMgrClient::GetInstance().RegisterPowerStateCallback(powerStateCallback_); + if (!ret) { + DHLOGE("DHFWK register power state callback failed"); + } else { + DHLOGE("DHFWK register power state callback success"); + } +} + +void DHContext::DHFWKPowerStateCallback::OnPowerStateChanged(PowerMgr::PowerState state) +{ + DHLOGI("DHFWK OnPowerStateChanged state: %u", static_cast(state)); + if (state == PowerMgr::PowerState::SLEEP || state == PowerMgr::PowerState::HIBERNATE || + state == PowerMgr::PowerState::SHUTDOWN) { + DHLOGI("DHFWK set in sleeping"); + DHContext::GetInstance().SetIsSleeping(true); + return; + } + + DHLOGI("DHFWK set NOT in sleeping"); + DHContext::GetInstance().SetIsSleeping(false); +} + +bool DHContext::IsSleeping() +{ + return isSleeping_; +} + +void DHContext::SetIsSleeping(bool isSleeping) +{ + isSleeping_ = isSleeping; +} + DHContext::CommonEventHandler::CommonEventHandler(const std::shared_ptr &runner) : AppExecFwk::EventHandler(runner) { -- Gitee From 5cf3ea14ad02dcca648697f285021f3c15748a69 Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Sat, 27 Jan 2024 21:36:21 +0800 Subject: [PATCH 3/4] modify Signed-off-by: hwzhangchuang --- .../test/unittest/common/accessmanager/BUILD.gn | 1 + .../test/unittest/common/componentloader/BUILD.gn | 1 + .../unittest/common/componentmanager/component_manager/BUILD.gn | 1 + .../test/unittest/common/dbadapter/BUILD.gn | 1 + .../test/unittest/common/distributedhardwaremanager/BUILD.gn | 1 + .../test/unittest/common/distributedhardwareservice/BUILD.gn | 1 + .../common/localhardwaremanager/localhardwaremanager/BUILD.gn | 1 + .../test/unittest/common/resourcemanager/BUILD.gn | 1 + .../test/unittest/common/versioninfomanager/versioninfo/BUILD.gn | 1 + .../common/versioninfomanager/versioninfomanager/BUILD.gn | 1 + utils/test/unittest/common/eventtrance/BUILD.gn | 1 + 11 files changed, 11 insertions(+) diff --git a/services/distributedhardwarefwkservice/test/unittest/common/accessmanager/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/accessmanager/BUILD.gn index 490c99d5..dcbc89f5 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/accessmanager/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/accessmanager/BUILD.gn @@ -61,6 +61,7 @@ ohos_unittest("AccessManagerTest") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbegetutil", + "power_manager:powermgr_client", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] diff --git a/services/distributedhardwarefwkservice/test/unittest/common/componentloader/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/componentloader/BUILD.gn index 35a03a68..193efc05 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/componentloader/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/componentloader/BUILD.gn @@ -54,6 +54,7 @@ ohos_unittest("ComponentLoaderTest") { "config_policy:configpolicy_util", "hitrace:hitrace_meter", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", ] defines = [ diff --git a/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn index afc1fb71..25f16a77 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn @@ -67,6 +67,7 @@ ohos_unittest("ComponentManagerTest") { "dsoftbus:softbus_client", "eventhandler:libeventhandler", "ipc:ipc_single", + "power_manager:powermgr_client", "kv_store:distributeddata_inner", ] diff --git a/services/distributedhardwarefwkservice/test/unittest/common/dbadapter/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/dbadapter/BUILD.gn index 2e404e16..370032e4 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/dbadapter/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/dbadapter/BUILD.gn @@ -61,6 +61,7 @@ ohos_unittest("DbAdapterTest") { "c_utils:utils", "eventhandler:libeventhandler", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", "safwk:system_ability_fwk", ] } diff --git a/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwaremanager/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwaremanager/BUILD.gn index caa0a7b9..9017a515 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwaremanager/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwaremanager/BUILD.gn @@ -49,6 +49,7 @@ ohos_unittest("DistributedHardwareManagerTest") { external_deps = [ "c_utils:utils", "eventhandler:libeventhandler", + "power_manager:powermgr_client", ] defines = [ diff --git a/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwareservice/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwareservice/BUILD.gn index 432b0905..b1ffab8b 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwareservice/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/distributedhardwareservice/BUILD.gn @@ -58,6 +58,7 @@ ohos_unittest("DistributedHardwareServiceTest") { "c_utils:utils", "eventhandler:libeventhandler", "ipc:ipc_core", + "power_manager:powermgr_client", "safwk:system_ability_fwk", ] } diff --git a/services/distributedhardwarefwkservice/test/unittest/common/localhardwaremanager/localhardwaremanager/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/localhardwaremanager/localhardwaremanager/BUILD.gn index aa5f9773..7905c5e8 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/localhardwaremanager/localhardwaremanager/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/localhardwaremanager/localhardwaremanager/BUILD.gn @@ -57,6 +57,7 @@ ohos_unittest("LocalHardwareManagerTest") { "eventhandler:libeventhandler", "hisysevent:libhisysevent", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", ] defines = [ diff --git a/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/BUILD.gn index 18d2e280..15157c63 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/BUILD.gn @@ -51,6 +51,7 @@ ohos_unittest("ResourceManagerTest") { "c_utils:utils", "eventhandler:libeventhandler", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", "safwk:system_ability_fwk", ] } diff --git a/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfo/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfo/BUILD.gn index e4b51703..ac50f7da 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfo/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfo/BUILD.gn @@ -51,6 +51,7 @@ ohos_unittest("VersionInfoTest") { "c_utils:utils", "eventhandler:libeventhandler", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", "safwk:system_ability_fwk", ] } diff --git a/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfomanager/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfomanager/BUILD.gn index 38a9c45d..d9cfa77b 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfomanager/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/versioninfomanager/versioninfomanager/BUILD.gn @@ -52,6 +52,7 @@ ohos_unittest("VersioninfoManagerTest") { "c_utils:utils", "eventhandler:libeventhandler", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", "safwk:system_ability_fwk", ] } diff --git a/utils/test/unittest/common/eventtrance/BUILD.gn b/utils/test/unittest/common/eventtrance/BUILD.gn index 4ff0134b..e240e684 100644 --- a/utils/test/unittest/common/eventtrance/BUILD.gn +++ b/utils/test/unittest/common/eventtrance/BUILD.gn @@ -51,6 +51,7 @@ ohos_unittest("EventTranceTest") { "c_utils:utils", "hisysevent:libhisysevent", "hitrace:hitrace_meter", + "power_manager:powermgr_client", "safwk:system_ability_fwk", ] } -- Gitee From 0af67a45b97b418a3eede2fd5e39c26248daed29 Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Sat, 27 Jan 2024 22:34:38 +0800 Subject: [PATCH 4/4] modify Signed-off-by: hwzhangchuang --- .../test/fuzztest/resourcemanager_fuzzer/BUILD.gn | 1 + .../unittest/common/componentmanager/component_manager/BUILD.gn | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/services/distributedhardwarefwkservice/test/fuzztest/resourcemanager_fuzzer/BUILD.gn b/services/distributedhardwarefwkservice/test/fuzztest/resourcemanager_fuzzer/BUILD.gn index 9acd72e5..1032e672 100644 --- a/services/distributedhardwarefwkservice/test/fuzztest/resourcemanager_fuzzer/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/fuzztest/resourcemanager_fuzzer/BUILD.gn @@ -56,6 +56,7 @@ ohos_fuzztest("ResourcemanagerFuzzTest") { "eventhandler:libeventhandler", "ipc:ipc_single", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", ] } diff --git a/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn index 25f16a77..5c83232c 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/componentmanager/component_manager/BUILD.gn @@ -67,8 +67,8 @@ ohos_unittest("ComponentManagerTest") { "dsoftbus:softbus_client", "eventhandler:libeventhandler", "ipc:ipc_single", - "power_manager:powermgr_client", "kv_store:distributeddata_inner", + "power_manager:powermgr_client", ] defines = [ -- Gitee