From 3a7924775977c054652e15ec5039c05701c0441d Mon Sep 17 00:00:00 2001 From: zhouoaoteng Date: Sat, 7 Jun 2025 11:25:50 +0800 Subject: [PATCH] fix:code Signed-off-by: zhouoaoteng --- .vscode/settings.json | 60 +++++++++++++++++++ .../include/distributed_input_sink_manager.h | 1 - .../src/distributed_input_sink_manager.cpp | 18 +----- utils/include/dinput_context.h | 2 +- utils/src/dinput_context.cpp | 15 +++++ 5 files changed, 77 insertions(+), 19 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d4d3c97 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,60 @@ +{ + "files.associations": { + "array": "cpp", + "atomic": "cpp", + "bitset": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "cinttypes": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "condition_variable": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "map": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "regex": "cpp", + "set": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "typeinfo": "cpp" + } +} \ No newline at end of file diff --git a/services/sink/sinkmanager/include/distributed_input_sink_manager.h b/services/sink/sinkmanager/include/distributed_input_sink_manager.h index 9595857..ac7a6cd 100644 --- a/services/sink/sinkmanager/include/distributed_input_sink_manager.h +++ b/services/sink/sinkmanager/include/distributed_input_sink_manager.h @@ -170,7 +170,6 @@ public: void ClearResourcesStatus(); private: - void CleanExceptionalInfo(const SrcScreenInfo &srcScreenInfo); void CallBackScreenInfoChange(); private: diff --git a/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp b/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp index a5d949c..9685447 100644 --- a/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp +++ b/services/sink/sinkmanager/src/distributed_input_sink_manager.cpp @@ -965,7 +965,7 @@ int32_t DistributedInputSinkManager::NotifyStartDScreen(const SrcScreenInfo &src { DHLOGI("NotifyStartDScreen start!"); - CleanExceptionalInfo(srcScreenInfo); + DInputContext::GetInstance().CleanExceptionalInfo(srcScreenInfo); std::string screenInfoKey = DInputContext::GetInstance().GetScreenInfoKey(srcScreenInfo.devId, srcScreenInfo.sourceWinId); @@ -1005,22 +1005,6 @@ void DistributedInputSinkManager::CallBackScreenInfoChange() } } -void DistributedInputSinkManager::CleanExceptionalInfo(const SrcScreenInfo &srcScreenInfo) -{ - DHLOGI("CleanExceptionalInfo start!"); - std::string uuid = srcScreenInfo.uuid; - int32_t sessionId = srcScreenInfo.sessionId; - std::unordered_map sinkInfos = DInputContext::GetInstance().GetAllSinkScreenInfo(); - - for (const auto &[id, sinkInfo] : sinkInfos) { - auto srcInfo = sinkInfo.srcScreenInfo; - if ((std::strcmp(srcInfo.uuid.c_str(), uuid.c_str()) == 0) && (srcInfo.sessionId != sessionId)) { - DInputContext::GetInstance().RemoveSinkScreenInfo(id); - DHLOGI("CleanExceptionalInfo screenInfoKey: %{public}s, sessionId: %{public}d", id.c_str(), sessionId); - } - } -} - int32_t DistributedInputSinkManager::NotifyStopDScreen(const std::string &srcScreenInfoKey) { DHLOGI("NotifyStopDScreen start, srcScreenInfoKey: %{public}s", GetAnonyString(srcScreenInfoKey).c_str()); diff --git a/utils/include/dinput_context.h b/utils/include/dinput_context.h index 7e10294..610b3a3 100644 --- a/utils/include/dinput_context.h +++ b/utils/include/dinput_context.h @@ -62,7 +62,7 @@ public: int32_t RemoveSrcScreenInfo(const std::string &screenInfoKey); int32_t UpdateSrcScreenInfo(const std::string &screenInfoKey, const SrcScreenInfo &srcScreenInfo); SrcScreenInfo GetSrcScreenInfo(const std::string &screenInfoKey); - + void CleanExceptionalInfo(const SrcScreenInfo &srcScreenInfo); void SetLocalTouchScreenInfo(const LocalTouchScreenInfo &localTouchScreenInfo); LocalTouchScreenInfo GetLocalTouchScreenInfo(); std::shared_ptr GetDHFwkKit(); diff --git a/utils/src/dinput_context.cpp b/utils/src/dinput_context.cpp index d1e4d7b..6a9c5e1 100644 --- a/utils/src/dinput_context.cpp +++ b/utils/src/dinput_context.cpp @@ -84,6 +84,21 @@ SinkScreenInfo DInputContext::GetSinkScreenInfo(const std::string &screenInfoKey return sinkScreenInfoMap_[screenInfoKey]; } +void DInputContext::CleanExceptionalInfo(const SrcScreenInfo &srcScreenInfo) +{ + DHLOGI("CleanExceptionalInfo start!"); + std::string uuid = srcScreenInfo.uuid; + int32_t sessionId = srcScreenInfo.sessionId; + std::lock_guard lock(sinkMapMutex_); + for (const auto &[id, sinkInfo] : sinkScreenInfoMap_) { + auto srcInfo = sinkInfo.srcScreenInfo; + if ((std::strcmp(srcInfo.uuid.c_str(), uuid.c_str()) == 0) && (srcInfo.sessionId != sessionId)) { + sinkScreenInfoMap_.erase(id); + DHLOGI("CleanExceptionalInfo screenInfoKey: %{public}s, sessionId: %{public}d", id.c_str(), sessionId); + } + } +} + const std::unordered_map &DInputContext::GetAllSinkScreenInfo() { std::lock_guard lock(sinkMapMutex_); -- Gitee