From 69a0aaf7c6fc45d7babd3bd22dd44537f068fcc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B7=8D?= Date: Mon, 14 Apr 2025 22:31:55 +0800 Subject: [PATCH 1/4] =?UTF-8?q?change=E4=BA=8B=E4=BB=B6=E5=92=8Conline?= =?UTF-8?q?=E5=8F=8Aoffline=E9=9A=94=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 李巍 --- .../dependency/softbus/softbus_connector.h | 4 +++ .../dependency/softbus/softbus_connector.cpp | 35 +++++++++++++++++-- .../src/device_manager_service_impl.cpp | 2 +- .../devicestate/dm_device_state_manager.cpp | 7 +++- 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/services/implementation/include/dependency/softbus/softbus_connector.h b/services/implementation/include/dependency/softbus/softbus_connector.h index 718d7ddeb..fd3506461 100644 --- a/services/implementation/include/dependency/softbus/softbus_connector.h +++ b/services/implementation/include/dependency/softbus/softbus_connector.h @@ -123,6 +123,10 @@ public: void SetProcessInfoVec(std::vector processInfoVec); std::vector GetProcessInfo(); void ClearProcessInfo(); + void SetChangeProcessInfo(ProcessInfo processInfo); + void SetChangeProcessInfoVec(std::vector processChangeInfoVec); + std::vector GetChangeProcessInfo(); + void ClearChangeProcessInfo(); DmDeviceInfo GetDeviceInfoByDeviceId(const std::string &deviceId); void DeleteOffLineTimer(std::string &udidHash); diff --git a/services/implementation/src/dependency/softbus/softbus_connector.cpp b/services/implementation/src/dependency/softbus/softbus_connector.cpp index 0af963094..c9a4a225b 100644 --- a/services/implementation/src/dependency/softbus/softbus_connector.cpp +++ b/services/implementation/src/dependency/softbus/softbus_connector.cpp @@ -46,9 +46,11 @@ std::string SoftbusConnector::remoteUdidHash_ = ""; std::map> SoftbusConnector::discoveryDeviceInfoMap_ = {}; std::unordered_map SoftbusConnector::deviceUdidMap_ = {}; std::vector SoftbusConnector::processInfoVec_ = {}; +std::vector SoftbusConnector::processChangeInfoVec_ = {}; std::mutex SoftbusConnector::discoveryDeviceInfoMutex_; std::mutex SoftbusConnector::deviceUdidLocks_; std::mutex SoftbusConnector::processInfoVecMutex_; +std::mutex SoftbusConnector::processChangeInfoVecMutex_; std::shared_ptr SoftbusConnector::connectorCallback_ = nullptr; SoftbusConnector::SoftbusConnector() @@ -420,18 +422,47 @@ void SoftbusConnector::SetProcessInfoVec(std::vector processInfoVec std::vector SoftbusConnector::GetProcessInfo() { - LOGI("In"); + LOGI("SoftbusConnector::GetProcessInfo"); std::lock_guard lock(processInfoVecMutex_); return processInfoVec_; } void SoftbusConnector::ClearProcessInfo() { - LOGI("In"); + LOGI("SoftbusConnector::ClearProcessInfo"); std::lock_guard lock(processInfoVecMutex_); processInfoVec_.clear(); } +//todo 修改 +void SoftbusConnector::SetChangeProcessInfo(ProcessInfo processInfo) +{ + LOGI("SoftbusConnector::SetChangeProcessInfo"); + std::lock_guard lock(processChangeInfoVecMutex_); + processChangeInfoVec_.push_back(processInfo); +} + +void SoftbusConnector::SetChangeProcessInfoVec(std::vector processChangeInfoVec) +{ + LOGI("SoftbusConnector::SetChangeProcessInfoVec"); + std::lock_guard lock(processChangeInfoVecMutex_); + processChangeInfoVec_ = processChangeInfoVec; +} + +std::vector SoftbusConnector::GetChangeProcessInfo() +{ + LOGI("SoftbusConnector::GetChangeProcessInfo"); + std::lock_guard lock(processChangeInfoVecMutex_); + return processChangeInfoVec_; +} + +void SoftbusConnector::ClearChangeProcessInfo() +{ + LOGI("SoftbusConnector::ClearChangeProcessInfo"); + std::lock_guard lock(processChangeInfoVecMutex_); + processChangeInfoVec_.clear(); +} + void SoftbusConnector::HandleDeviceOnline(std::string deviceId, int32_t authForm) { LOGI("SoftbusConnector::HandleDeviceOnline"); diff --git a/services/implementation/src/device_manager_service_impl.cpp b/services/implementation/src/device_manager_service_impl.cpp index 517a0aeea..e6d46f95d 100644 --- a/services/implementation/src/device_manager_service_impl.cpp +++ b/services/implementation/src/device_manager_service_impl.cpp @@ -279,7 +279,7 @@ void DeviceManagerServiceImpl::HandleDeviceStatusChange(DmDeviceState devState, ProcessInfo processInfo; processInfo.pkgName = std::string(DM_PKG_NAME); processInfo.userId = MultipleUserConnector::GetFirstForegroundUserId(); - softbusConnector_->SetProcessInfo(processInfo); + softbusConnector_->SetChangeProcessInfo(processInfo); deviceStateMgr_->HandleDeviceStatusChange(devState, devInfo); } } diff --git a/services/implementation/src/devicestate/dm_device_state_manager.cpp b/services/implementation/src/devicestate/dm_device_state_manager.cpp index d88646d7c..72bbda204 100644 --- a/services/implementation/src/devicestate/dm_device_state_manager.cpp +++ b/services/implementation/src/devicestate/dm_device_state_manager.cpp @@ -175,7 +175,12 @@ void DmDeviceStateManager::ProcessDeviceStateChange(const DmDeviceState devState GetAnonyString(devInfo.networkId).c_str()); CHECK_NULL_VOID(softbusConnector_); CHECK_NULL_VOID(listener_); - std::vector processInfoVec = softbusConnector_->GetProcessInfo(); + std::vector processInfoVec; + if (devState == DEVICE_INFO_CHANGED) { + processInfoVec = softbusConnector_->GetChangeProcessInfo(); + } else { + processInfoVec = softbusConnector_->GetProcessInfo(); + } for (const auto &item : processInfoVec) { if (!item.pkgName.empty()) { LOGI("ProcessDeviceStateChange, pkgName = %{public}s", item.pkgName.c_str()); -- Gitee From b965c49eec02cd7a2c0a33a85768547ec79238b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B7=8D?= Date: Wed, 16 Apr 2025 20:01:11 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 李巍 --- .../include/dependency/softbus/softbus_connector.h | 1 - .../src/dependency/softbus/softbus_connector.cpp | 8 -------- 2 files changed, 9 deletions(-) diff --git a/services/implementation/include/dependency/softbus/softbus_connector.h b/services/implementation/include/dependency/softbus/softbus_connector.h index fd3506461..43f7b5140 100644 --- a/services/implementation/include/dependency/softbus/softbus_connector.h +++ b/services/implementation/include/dependency/softbus/softbus_connector.h @@ -124,7 +124,6 @@ public: std::vector GetProcessInfo(); void ClearProcessInfo(); void SetChangeProcessInfo(ProcessInfo processInfo); - void SetChangeProcessInfoVec(std::vector processChangeInfoVec); std::vector GetChangeProcessInfo(); void ClearChangeProcessInfo(); DmDeviceInfo GetDeviceInfoByDeviceId(const std::string &deviceId); diff --git a/services/implementation/src/dependency/softbus/softbus_connector.cpp b/services/implementation/src/dependency/softbus/softbus_connector.cpp index c9a4a225b..f21fb875d 100644 --- a/services/implementation/src/dependency/softbus/softbus_connector.cpp +++ b/services/implementation/src/dependency/softbus/softbus_connector.cpp @@ -434,7 +434,6 @@ void SoftbusConnector::ClearProcessInfo() processInfoVec_.clear(); } -//todo 修改 void SoftbusConnector::SetChangeProcessInfo(ProcessInfo processInfo) { LOGI("SoftbusConnector::SetChangeProcessInfo"); @@ -442,13 +441,6 @@ void SoftbusConnector::SetChangeProcessInfo(ProcessInfo processInfo) processChangeInfoVec_.push_back(processInfo); } -void SoftbusConnector::SetChangeProcessInfoVec(std::vector processChangeInfoVec) -{ - LOGI("SoftbusConnector::SetChangeProcessInfoVec"); - std::lock_guard lock(processChangeInfoVecMutex_); - processChangeInfoVec_ = processChangeInfoVec; -} - std::vector SoftbusConnector::GetChangeProcessInfo() { LOGI("SoftbusConnector::GetChangeProcessInfo"); -- Gitee From ec0d5a1c09a3e5a898547fa716bd4fa97969b6d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B7=8D?= Date: Wed, 16 Apr 2025 21:16:36 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=88=90=E5=91=98?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 李巍 --- .../include/dependency/softbus/softbus_connector.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/implementation/include/dependency/softbus/softbus_connector.h b/services/implementation/include/dependency/softbus/softbus_connector.h index 43f7b5140..417c85913 100644 --- a/services/implementation/include/dependency/softbus/softbus_connector.h +++ b/services/implementation/include/dependency/softbus/softbus_connector.h @@ -144,9 +144,11 @@ private: std::shared_ptr deviceStateManagerCallback_; static std::unordered_map deviceUdidMap_; static std::vector processInfoVec_; + static std::vector processChangeInfoVec_; static std::mutex discoveryDeviceInfoMutex_; static std::mutex deviceUdidLocks_; static std::mutex processInfoVecMutex_; + static std::mutex processChangeInfoVecMutex_; static std::shared_ptr connectorCallback_; }; } // namespace DistributedHardware -- Gitee From 02b7f4539e14fa93cadb245f3cb68ee353b8c62b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B7=8D?= Date: Sun, 20 Apr 2025 10:58:25 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 李巍 --- .../include/dependency/softbus/softbus_connector.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/implementation/include/dependency/softbus/softbus_connector.h b/services/implementation/include/dependency/softbus/softbus_connector.h index 417c85913..18abee84e 100644 --- a/services/implementation/include/dependency/softbus/softbus_connector.h +++ b/services/implementation/include/dependency/softbus/softbus_connector.h @@ -144,7 +144,7 @@ private: std::shared_ptr deviceStateManagerCallback_; static std::unordered_map deviceUdidMap_; static std::vector processInfoVec_; - static std::vector processChangeInfoVec_; + static std::vector processChangeInfoVec_; static std::mutex discoveryDeviceInfoMutex_; static std::mutex deviceUdidLocks_; static std::mutex processInfoVecMutex_; -- Gitee