From 0050bdac86b12c86906284dbbdaa41d6ee028c9c Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Thu, 30 Nov 2023 11:56:31 +0800 Subject: [PATCH 1/2] clear trans status for unprepare Signed-off-by: hwzhangchuang --- .../include/distributed_input_sink_manager.h | 3 +- .../src/distributed_input_sink_manager.cpp | 33 +++---------------- .../distributed_input_sinkmanager_test.cpp | 26 --------------- 3 files changed, 6 insertions(+), 56 deletions(-) diff --git a/services/sink/sinkmanager/include/distributed_input_sink_manager.h b/services/sink/sinkmanager/include/distributed_input_sink_manager.h index f51a6d7..f915705 100644 --- a/services/sink/sinkmanager/include/distributed_input_sink_manager.h +++ b/services/sink/sinkmanager/include/distributed_input_sink_manager.h @@ -186,11 +186,10 @@ private: /* * Stop dhids on cmd, * stoDhIds: dhIds on cmd - * stopIndeedDhIds: dhId that no session (retmote node) need, stop capture event. + * stopIndeedDhIds: dhId that need stop capture event. */ void DeleteStopDhids(int32_t sessionId, const std::vector stopDhIds, std::vector &stopIndeedDhIds); - bool IsStopDhidOnCmdStillNeed(int32_t sessionId, const std::string &stopDhId); }; } // namespace DistributedInput } // namespace DistributedHardware diff --git a/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp b/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp index 34b08a5..2ae3caa 100644 --- a/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp +++ b/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp @@ -195,8 +195,7 @@ void DistributedInputSinkManager::DInputSinkListener::OnRelayUnprepareRemoteInpu { DHLOGI("OnRelayUnprepareRemoteInput called, toSinkSessionId: %d, devId: %s", toSinkSessionId, GetAnonyString(deviceId).c_str()); - DistributedInputCollector::GetInstance().SetSharingTypes(false, static_cast(DInputDeviceType::ALL)); - DistributedInputSinkSwitch::GetInstance().StopAllSwitch(); + OnStopRemoteInput(toSinkSessionId, static_cast(DInputDeviceType::ALL)); DistributedInputSinkSwitch::GetInstance().RemoveSession(toSinkSessionId); nlohmann::json jsonStr; @@ -503,25 +502,6 @@ void DistributedInputSinkManager::DInputSinkListener::OnRelayStopTypeRemoteInput } } -bool DistributedInputSinkManager::IsStopDhidOnCmdStillNeed(int32_t sessionId, const std::string &stopDhId) -{ - for (auto sessionDhid : sharingDhIdsMap_) { - if (sessionDhid.first == sessionId) { - DHLOGW("IsStopDhidOnCmdStillNeed sessionId=%d is self, ignore.", sessionId); - continue; - } - for (auto dhid : sessionDhid.second) { - if (stopDhId == dhid) { - DHLOGI("IsStopDhidOnCmdStillNeed stopDhId=%s is find in session: %d", GetAnonyString(stopDhId).c_str(), - sessionDhid.first); - return true; - } - } - } - DHLOGW("IsStopDhidOnCmdStillNeed stopDhId=%s is not find.", GetAnonyString(stopDhId).c_str()); - return false; -} - void DistributedInputSinkManager::DeleteStopDhids(int32_t sessionId, const std::vector stopDhIds, std::vector &stopIndeedDhIds) { @@ -541,13 +521,10 @@ void DistributedInputSinkManager::DeleteStopDhids(int32_t sessionId, const std:: } else { DHLOGI("DeleteStopDhids sessionId=%d after has dhid.size=%d.", sessionId, sharingDhIdsMap_[sessionId].size()); } - // find which dhid can be stop - for (auto tmp : stopDhIds) { - bool isFind = IsStopDhidOnCmdStillNeed(sessionId, tmp); - if (!isFind) { - stopIndeedDhIds.push_back(tmp); - sharingDhIds_.erase(tmp); - } + + stopIndeedDhIds.assign(stopDhIds.begin(), stopDhIds.end()); + for (const &id : stopDhIds) { + sharingDhIds_.erase(id); } } diff --git a/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.cpp b/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.cpp index 3e61341..bd62d52 100644 --- a/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.cpp +++ b/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.cpp @@ -125,31 +125,6 @@ HWTEST_F(DistributedInputSinkManagerTest, GetInputTypes, testing::ext::TestSize. EXPECT_EQ(inputTypes, retType); } -HWTEST_F(DistributedInputSinkManagerTest, IsStopDhidOnCmdStillNeed01, testing::ext::TestSize.Level0) -{ - int32_t sessionId = 1; - std::vector dhIds; - dhIds.push_back("Input_123123123123"); - dhIds.push_back("Input_456456456456"); - dhIds.push_back("Input_789789789789"); - sinkManager_->StoreStartDhids(100, dhIds); - std::set dhIdSet; - dhIdSet.insert("Input_123123123123"); - sinkManager_->sharingDhIdsMap_[sessionId] = dhIdSet; - sinkManager_->StoreStartDhids(sessionId, dhIds); - std::string stopDhId = "Input_123123123123"; - bool ret = sinkManager_->IsStopDhidOnCmdStillNeed(sessionId, stopDhId); - EXPECT_EQ(true, ret); -} - -HWTEST_F(DistributedInputSinkManagerTest, IsStopDhidOnCmdStillNeed02, testing::ext::TestSize.Level0) -{ - int32_t sessionId = 1000; - std::string stopDhId = "Input_123123123123"; - bool ret = sinkManager_->IsStopDhidOnCmdStillNeed(sessionId, stopDhId); - EXPECT_EQ(false, ret); -} - HWTEST_F(DistributedInputSinkManagerTest, DeleteStopDhids01, testing::ext::TestSize.Level0) { int32_t sessionId = 1; @@ -165,7 +140,6 @@ HWTEST_F(DistributedInputSinkManagerTest, DeleteStopDhids01, testing::ext::TestS EXPECT_EQ(0, sinkManager_->sharingDhIdsMap_.size()); } - HWTEST_F(DistributedInputSinkManagerTest, GetSinkScreenInfosCbackSize01, testing::ext::TestSize.Level0) { uint32_t ret = sinkManager_->GetSinkScreenInfosCbackSize(); -- Gitee From 40138b182dc2665f4a89c2c440cd1287a28729e3 Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Thu, 30 Nov 2023 12:01:52 +0800 Subject: [PATCH 2/2] add Signed-off-by: hwzhangchuang --- .../sink/sinkmanager/src/distributed_input_sink_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp b/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp index 2ae3caa..b4ade68 100644 --- a/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp +++ b/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp @@ -523,7 +523,7 @@ void DistributedInputSinkManager::DeleteStopDhids(int32_t sessionId, const std:: } stopIndeedDhIds.assign(stopDhIds.begin(), stopDhIds.end()); - for (const &id : stopDhIds) { + for (auto &id : stopDhIds) { sharingDhIds_.erase(id); } } -- Gitee