From e6724f170905f8a449e464b7c4080698cc220b50 Mon Sep 17 00:00:00 2001 From: zuojiangjiang Date: Tue, 30 May 2023 09:33:56 +0800 Subject: [PATCH] update Signed-off-by: zuojiangjiang --- .../service/rdb/rdb_general_store.cpp | 13 ++++++--- .../include/cloud/cloud_store_types.h | 25 ----------------- .../relational/relational_store_delegate.h | 2 +- .../interfaces/include/store_types.h | 28 ++++++++++++++++++- .../relational_store_delegate_impl.cpp | 2 +- .../relational_store_delegate_impl.h | 2 +- 6 files changed, 39 insertions(+), 33 deletions(-) diff --git a/datamgr_service/services/distributeddataservice/service/rdb/rdb_general_store.cpp b/datamgr_service/services/distributeddataservice/service/rdb/rdb_general_store.cpp index 1d162e7f..778cb2f0 100644 --- a/datamgr_service/services/distributeddataservice/service/rdb/rdb_general_store.cpp +++ b/datamgr_service/services/distributeddataservice/service/rdb/rdb_general_store.cpp @@ -183,11 +183,16 @@ int32_t RdbGeneralStore::Sync(const Devices &devices, int32_t mode, GenQuery &qu } auto status = delegate_->Sync( devices, DistributedDB::SyncMode(mode), rdbQuery->query_, - [async](SyncProcess process) { + [async](const std::map &process) { + if (process.empty()) { + ZLOGE("process empty"); + return; + } + auto &firstProc = process.begin()->second; ProgressDetails detail; - detail.progress = process.process; - detail.code = process.errCode == DBStatus::OK ? GeneralError::E_OK : GeneralError::E_ERROR; - for (auto &[key, value] : process.tableProcess) { + detail.progress = firstProc.process; + detail.code = firstProc.errCode == DBStatus::OK ? GeneralError::E_OK : GeneralError::E_ERROR; + for (auto &[key, value] : firstProc.tableProcess) { TableDetails table; table.upload.total = value.upLoadInfo.total; table.upload.success = value.upLoadInfo.successCount; diff --git a/kv_store/frameworks/libs/distributeddb/interfaces/include/cloud/cloud_store_types.h b/kv_store/frameworks/libs/distributeddb/interfaces/include/cloud/cloud_store_types.h index dc09edf4..f67cd2c2 100644 --- a/kv_store/frameworks/libs/distributeddb/interfaces/include/cloud/cloud_store_types.h +++ b/kv_store/frameworks/libs/distributeddb/interfaces/include/cloud/cloud_store_types.h @@ -50,31 +50,6 @@ using Bytes = std::vector; using Type = std::variant; using VBucket = std::map; -enum ProcessStatus { - PREPARED = 0, - PROCESSING = 1, - FINISHED = 2, -}; - -struct Info { - uint32_t batchIndex = 0; - uint32_t total = 0; - uint32_t successCount = 0; // merge or upload success count - uint32_t failCount = 0; -}; - -struct TableProcessInfo { - ProcessStatus process = PREPARED; - Info downLoadInfo; - Info upLoadInfo; -}; - -struct SyncProcess { - ProcessStatus process = PREPARED; - DBStatus errCode = OK; - std::map tableProcess; -}; - struct Field { std::string colName; int32_t type; // get value from TYPE_INDEX; diff --git a/kv_store/frameworks/libs/distributeddb/interfaces/include/relational/relational_store_delegate.h b/kv_store/frameworks/libs/distributeddb/interfaces/include/relational/relational_store_delegate.h index 3e171488..0be9b7c3 100644 --- a/kv_store/frameworks/libs/distributeddb/interfaces/include/relational/relational_store_delegate.h +++ b/kv_store/frameworks/libs/distributeddb/interfaces/include/relational/relational_store_delegate.h @@ -59,7 +59,7 @@ public: DB_API virtual DBStatus RemoveDeviceData() = 0; DB_API virtual DBStatus Sync(const std::vector &devices, SyncMode mode, - const Query &query, const std::function &onProcess, + const Query &query, const SyncProcessCallback &onProcess, int64_t waitTime) = 0; DB_API virtual DBStatus SetCloudDB(const std::shared_ptr &cloudDb) = 0; diff --git a/kv_store/frameworks/libs/distributeddb/interfaces/include/store_types.h b/kv_store/frameworks/libs/distributeddb/interfaces/include/store_types.h index d4b3678c..560cb389 100644 --- a/kv_store/frameworks/libs/distributeddb/interfaces/include/store_types.h +++ b/kv_store/frameworks/libs/distributeddb/interfaces/include/store_types.h @@ -126,12 +126,38 @@ struct TableStatus { std::string tableName; DBStatus status; }; + +enum ProcessStatus { + PREPARED = 0, + PROCESSING = 1, + FINISHED = 2, +}; + +struct Info { + uint32_t batchIndex = 0; + uint32_t total = 0; + uint32_t successCount = 0; // merge or upload success count + uint32_t failCount = 0; +}; + +struct TableProcessInfo { + ProcessStatus process = PREPARED; + Info downLoadInfo; + Info upLoadInfo; +}; + +struct SyncProcess { + ProcessStatus process = PREPARED; + DBStatus errCode = OK; + std::map tableProcess; +}; + using KvStoreCorruptionHandler = std::function; using StoreCorruptionHandler = std::function; using SyncStatusCallback = std::function> &devicesMap)>; - +using SyncProcessCallback = std::function &process)>; struct RemoteCondition { std::string sql; // The sql statement; std::vector bindArgs; // The bind args. diff --git a/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.cpp b/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.cpp index f10688e5..8e3f6b47 100644 --- a/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.cpp +++ b/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.cpp @@ -182,7 +182,7 @@ DBStatus RelationalStoreDelegateImpl::RemoveDeviceData() } DBStatus RelationalStoreDelegateImpl::Sync(const std::vector &devices, SyncMode mode, const Query &query, - const std::function &onProcess, int64_t waitTime) + const SyncProcessCallback &onProcess, int64_t waitTime) { return OK; } diff --git a/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.h b/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.h index b3d0b1ee..fc386eb6 100644 --- a/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.h +++ b/kv_store/frameworks/libs/distributeddb/interfaces/src/relational/relational_store_delegate_impl.h @@ -49,7 +49,7 @@ public: DBStatus RemoveDeviceData() override; DBStatus Sync(const std::vector &devices, SyncMode mode, const Query &query, - const std::function &onProcess, int64_t waitTime) override; + const SyncProcessCallback &onProcess, int64_t waitTime) override; DBStatus SetCloudDB(const std::shared_ptr &cloudDb) override; -- Gitee