From e1e342f449198f2937f8a3efe6e1820a258aa8d1 Mon Sep 17 00:00:00 2001 From: ljy Date: Mon, 30 Jun 2025 11:28:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=B8=E6=8C=87=E9=92=88=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=88=90=E5=8F=AA=E8=83=BD=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ljy --- .../service/kvdb/kvdb_general_store.cpp | 11 ++++++----- .../service/kvdb/kvdb_general_store.h | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp index 9fd1fe9d0..d2a6c32fd 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp +++ b/services/distributeddataservice/service/kvdb/kvdb_general_store.cpp @@ -171,7 +171,8 @@ KVDBGeneralStore::KVDBGeneralStore(const StoreMetaData &meta) : manager_(meta.appId, meta.appId == Bootstrap::GetInstance().GetProcessLabel() ? defaultAccountId : meta.user, meta.instanceId) { - observer_.storeId_ = meta.storeId; + observer_ = std::make_shared(); + observer_->storeId_ = meta.storeId; StoreMetaDataLocal local; MetaDataManager::GetInstance().LoadMeta(meta.GetKeyLocal(), local, true); isPublic_ = local.isPublic; @@ -551,21 +552,21 @@ int32_t KVDBGeneralStore::Clean(const std::vector &devices, int32_t int32_t KVDBGeneralStore::Watch(int32_t origin, Watcher &watcher) { - if (origin != Watcher::Origin::ORIGIN_ALL || observer_.watcher_ != nullptr) { + if (origin != Watcher::Origin::ORIGIN_ALL || observer_->watcher_ != nullptr) { return GeneralError::E_INVALID_ARGS; } - observer_.watcher_ = &watcher; + observer_->watcher_ = &watcher; return GeneralError::E_OK; } int32_t KVDBGeneralStore::Unwatch(int32_t origin, Watcher &watcher) { - if (origin != Watcher::Origin::ORIGIN_ALL || observer_.watcher_ != &watcher) { + if (origin != Watcher::Origin::ORIGIN_ALL || observer_->watcher_ != &watcher) { return GeneralError::E_INVALID_ARGS; } - observer_.watcher_ = nullptr; + observer_->watcher_ = nullptr; return GeneralError::E_OK; } diff --git a/services/distributeddataservice/service/kvdb/kvdb_general_store.h b/services/distributeddataservice/service/kvdb/kvdb_general_store.h index 80e030f05..f23de18c3 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_general_store.h +++ b/services/distributeddataservice/service/kvdb/kvdb_general_store.h @@ -18,6 +18,7 @@ #include #include +#include #include #include "kv_store_changed_data.h" @@ -122,7 +123,7 @@ private: }; static constexpr uint8_t META_COMPRESS_RATE = 10; - ObserverProxy observer_; + std::shared_ptr observer_; KvManager manager_; KvDelegate *delegate_ = nullptr; std::shared_mutex bindMutex_; -- Gitee