diff --git a/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.cpp b/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.cpp index f79f4bb8ac80201795a83e58388932a35bc09ae9..e0ee3e9fd848506bb2e7c8ca39acb3abbd6b5830 100644 --- a/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.cpp +++ b/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.cpp @@ -34,7 +34,7 @@ DBStatus RdbCloud::BatchInsert( if (error == GeneralError::E_OK) { extend = ValueProxy::Convert(std::move(extends)); } - return ValueProxy::ConvertStatus(static_cast(error)); + return ConvertStatus(static_cast(error)); } DBStatus RdbCloud::BatchUpdate( @@ -42,13 +42,13 @@ DBStatus RdbCloud::BatchUpdate( { auto error = cloudDB_->BatchUpdate( tableName, ValueProxy::Convert(std::move(record)), ValueProxy::Convert(std::move(extend))); - return ValueProxy::ConvertStatus(static_cast(error)); + return ConvertStatus(static_cast(error)); } DBStatus RdbCloud::BatchDelete(const std::string &tableName, std::vector &extend) { auto error = cloudDB_->BatchDelete(tableName, ValueProxy::Convert(std::move(extend))); - return ValueProxy::ConvertStatus(static_cast(error)); + return ConvertStatus(static_cast(error)); } DBStatus RdbCloud::Query(const std::string &tableName, DBVBucket &extend, std::vector &data) @@ -56,7 +56,7 @@ DBStatus RdbCloud::Query(const std::string &tableName, DBVBucket &extend, std::v auto cursor = cloudDB_->Query(tableName, ValueProxy::Convert(std::move(extend))); if (cursor == nullptr) { ZLOGE("cursor is null, table:%{public}s, extend:%{public}zu", tableName.c_str(), extend.size()); - return ValueProxy::ConvertStatus(static_cast(E_ERROR)); + return ConvertStatus(static_cast(E_ERROR)); } int32_t count = cursor->GetCount(); data.reserve(count); @@ -71,30 +71,54 @@ DBStatus RdbCloud::Query(const std::string &tableName, DBVBucket &extend, std::v err = cursor->MoveToNext(); count--; } - return ValueProxy::ConvertStatus(static_cast(err)); + return ConvertStatus(static_cast(err)); } std::pair RdbCloud::Lock() { auto error = cloudDB_->Lock(); - return std::make_pair(ValueProxy::ConvertStatus(static_cast(error)), 0); + return std::make_pair(ConvertStatus(static_cast(error)), 0); } DBStatus RdbCloud::UnLock() { auto error = cloudDB_->Unlock(); - return ValueProxy::ConvertStatus(static_cast(error)); + return ConvertStatus(static_cast(error)); } DBStatus RdbCloud::HeartBeat() { auto error = cloudDB_->Heartbeat(); - return ValueProxy::ConvertStatus(static_cast(error)); + return ConvertStatus(static_cast(error)); } DBStatus RdbCloud::Close() { auto error = cloudDB_->Close(); - return ValueProxy::ConvertStatus(static_cast(error)); + return ConvertStatus(static_cast(error)); +} + + +DBStatus RdbCloud::ConvertStatus(DistributedData::GeneralError error) +{ + switch (error) { + case GeneralError::E_OK: + return DBStatus::OK; + case GeneralError::E_BUSY: + return DBStatus::BUSY; + case GeneralError::E_INVALID_ARGS: + return DBStatus::INVALID_ARGS; + case GeneralError::E_NOT_SUPPORT: + return DBStatus::NOT_SUPPORT; + case GeneralError::E_ERROR: // fallthrough + case GeneralError::E_NOT_INIT: + case GeneralError::E_ALREADY_CONSUMED: + case GeneralError::E_ALREADY_CLOSED: + return DBStatus::CLOUD_ERROR; + default: + ZLOGE("unknown error:0x%{public}x", error); + break; + } + return DBStatus::CLOUD_ERROR; } } // namespace OHOS::DistributedRdb \ No newline at end of file diff --git a/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.h b/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.h index 2b532e02f589fd22c895296550676d606f2b8a9c..30e4ee59245234a35ae56a97c3fd444cd210849c 100644 --- a/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.h +++ b/datamgr_service/services/distributeddataservice/service/rdb/rdb_cloud.h @@ -38,6 +38,7 @@ public: DBStatus UnLock() override; DBStatus HeartBeat() override; DBStatus Close() override; + DBStatus ConvertStatus(DistributedData::GeneralError error); private: std::shared_ptr cloudDB_; diff --git a/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.cpp b/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.cpp index dbd318e8f414ba03858c583980678f7944cd48e4..7035d9fac9e74e097c890ec75185aac8f11cb05a 100644 --- a/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.cpp +++ b/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.cpp @@ -329,27 +329,4 @@ ValueProxy::Buckets &ValueProxy::Buckets::operator=(Buckets &&buckets) noexcept value_ = std::move(buckets.value_); return *this; } - -ValueProxy::DBStatus ValueProxy::ConvertStatus(DistributedData::GeneralError error) -{ - switch (error) { - case GeneralError::E_OK: - return DBStatus::OK; - case GeneralError::E_BUSY: - return DBStatus::BUSY; - case GeneralError::E_INVALID_ARGS: - return DBStatus::INVALID_ARGS; - case GeneralError::E_NOT_SUPPORT: - return DBStatus::NOT_SUPPORT; - case GeneralError::E_ERROR: // fallthrough - case GeneralError::E_NOT_INIT: - case GeneralError::E_ALREADY_CONSUMED: - case GeneralError::E_ALREADY_CLOSED: - return DBStatus::CLOUD_ERROR; - default: - ZLOGE("unknown error:0x%{public}x", error); - break; - } - return DBStatus::CLOUD_ERROR; -} } // namespace OHOS::DistributedRdb \ No newline at end of file diff --git a/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.h b/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.h index f501a205af5ae1e7588f460f5d9800f980901b20..3b9eeecf15de5c46487565d84fde720a0cb96303 100644 --- a/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.h +++ b/datamgr_service/services/distributeddataservice/service/rdb/value_proxy.h @@ -24,7 +24,6 @@ namespace OHOS::DistributedRdb { class ValueProxy final { public: using Bytes = DistributedData::Bytes; - using DBStatus = DistributedDB::DBStatus; class Asset { public: Asset() = default; @@ -36,9 +35,9 @@ public: { *this = proxy; }; - explicit Asset(DistributedData::Asset asset); - explicit Asset(NativeRdb::AssetValue asset); - explicit Asset(DistributedDB::Asset asset); + Asset(DistributedData::Asset asset); + Asset(NativeRdb::AssetValue asset); + Asset(DistributedDB::Asset asset); Asset &operator=(const Asset &proxy); Asset &operator=(Asset &&proxy) noexcept; operator NativeRdb::AssetValue(); @@ -60,9 +59,9 @@ public: { *this = proxy; }; - explicit Assets(DistributedData::Assets assets); - explicit Assets(NativeRdb::ValueObject::Assets assets); - explicit Assets(DistributedDB::Assets assets); + Assets(DistributedData::Assets assets); + Assets(NativeRdb::ValueObject::Assets assets); + Assets(DistributedDB::Assets assets); Assets &operator=(const Assets &proxy); Assets &operator=(Assets &&proxy) noexcept; operator NativeRdb::ValueObject::Assets(); @@ -174,9 +173,6 @@ public: static Value Convert(DistributedDB::Type &&value); static Bucket Convert(DistributedDB::VBucket &&bucket); static Buckets Convert(std::vector &&buckets); - - static DBStatus ConvertStatus(DistributedData::GeneralError error); - private: ValueProxy() = delete; ~ValueProxy() = delete;