From 9b50c43a3e59b00a80b0854e19a74ba09403e97f Mon Sep 17 00:00:00 2001 From: zwx1271681 Date: Thu, 4 Jul 2024 10:55:03 +0800 Subject: [PATCH] feat: Modify the datashare module, add, delete, and modify the return value of the interface to pair Signed-off-by: zwx1271681 --- contacts/src/contacts_control.cpp | 58 +++++++++++++------ .../include/contacts_datashare_stub_impl.h | 6 +- .../src/contacts_datashare_stub_impl.cpp | 29 +++++----- 3 files changed, 58 insertions(+), 35 deletions(-) diff --git a/contacts/src/contacts_control.cpp b/contacts/src/contacts_control.cpp index 5cd6b10..6887a5d 100644 --- a/contacts/src/contacts_control.cpp +++ b/contacts/src/contacts_control.cpp @@ -30,12 +30,16 @@ ContactsControl::~ContactsControl() int ContactsControl::RawContactInsert(std::shared_ptr dataShareHelper, DataShare::DataShareValuesBucket rawContactValues) { - int code = 0; OHOS::Uri uriRawContact("datashare:///com.ohos.contactsdataability/contacts/raw_contact"); - code = dataShareHelper->Insert(uriRawContact, rawContactValues); - HILOG_INFO(" ContactsControl::RawContactInsert insert code %{public}d", code); + auto [errCode, status] = dataShareHelper->Insert(uriRawContact, rawContactValues); rawContactValues.Clear(); - return code; + if (errCode == 0) { + HILOG_INFO(" ContactsControl::RawContactInsert insert code %{public}d", status); + return status; + } else { + HILOG_ERROR("ContactsControl::RawContactInsert insert fail, errcode = %{public}d", errCode); + return errCode; + } } int ContactsControl::ContactDataInsert(std::shared_ptr dataShareHelper, @@ -48,41 +52,61 @@ int ContactsControl::ContactDataInsert(std::shared_ptr dataShareHelper, DataShare::DataSharePredicates predicates) { - int code = 0; OHOS::Uri uriContactData("datashare:///com.ohos.contactsdataability/contacts/contact_data"); - code = dataShareHelper->Delete(uriContactData, predicates); - HILOG_INFO(" ContactsControl::ContactDataDelete delete code %{public}d", code); - return code; + auto [errCode, status] = dataShareHelper->Delete(uriContactData, predicates); + if (errCode == 0) { + HILOG_DEBUG(" ContactsControl::ContactDataDelete delete code %{public}d", status); + return status; + } else { + HILOG_ERROR("ContactsControl::ContactDataDelete delete fail, errcode = %{public}d", errCode); + return errCode; + } } int ContactsControl::RawContactUpdate(std::shared_ptr dataShareHelper, DataShare::DataShareValuesBucket updateValues, DataShare::DataSharePredicates predicates) { - int code = 0; OHOS::Uri uriRawContact("datashare:///com.ohos.contactsdataability/contacts/raw_contact"); - code = dataShareHelper->Update(uriRawContact, predicates, updateValues); - return code; + auto [errCode, status] = dataShareHelper->Update(uriRawContact, predicates, updateValues); + if (errCode == 0) { + HILOG_DEBUG(" ContactsControl::RawContactUpdate update code %{public}d", status); + return status; + } else { + HILOG_ERROR("ContactsControl::RawContactUpdate update fail, errcode = %{public}d", errCode); + return errCode; + } } int ContactsControl::ContactDataUpdate(std::shared_ptr dataShareHelper, DataShare::DataShareValuesBucket updateValues, DataShare::DataSharePredicates predicates) { - int code = 0; OHOS::Uri uriContactData("datashare:///com.ohos.contactsdataability/contacts/contact_data"); - code = dataShareHelper->Update(uriContactData, predicates, updateValues); - return code; + auto [errCode, status] = dataShareHelper->Update(uriContactData, predicates, updateValues); + if (errCode == 0) { + HILOG_DEBUG(" ContactsControl::ContactDataUpdate update code %{public}d", status); + return status; + } else { + HILOG_ERROR("ContactsControl::ContactDataUpdate update fail, errcode = %{public}d", errCode); + return errCode; + } } int ContactsControl::ContactDelete(std::shared_ptr dataShareHelper, DataShare::DataSharePredicates predicates) { - int code = 0; OHOS::Uri uriContact("datashare:///com.ohos.contactsdataability/contacts/contact"); - code = dataShareHelper->Delete(uriContact, predicates); - return code; + auto [errCode, status] = dataShareHelper->Delete(uriContact, predicates); + if (errCode == 0) { + HILOG_DEBUG(" ContactsControl::ContactDelete delete code %{public}d", status); + return status; + } else { + HILOG_ERROR("ContactsControl::ContactDelete delete fail, errcode = %{public}d", errCode); + return errCode; + } } std::shared_ptr ContactsControl::HolderQuery( diff --git a/dataBusiness/contacts/include/contacts_datashare_stub_impl.h b/dataBusiness/contacts/include/contacts_datashare_stub_impl.h index 9c8fe06..a4ff368 100644 --- a/dataBusiness/contacts/include/contacts_datashare_stub_impl.h +++ b/dataBusiness/contacts/include/contacts_datashare_stub_impl.h @@ -26,10 +26,10 @@ public: ContactsDataShareStubImpl() {} virtual ~ContactsDataShareStubImpl() {}; - int Insert(const Uri &uri, const DataShareValuesBucket &value) override; - int Update(const Uri &uri, const DataSharePredicates &predicates, + std::pair Insert(const Uri &uri, const DataShareValuesBucket &value) override; + std::pair Update(const Uri &uri, const DataSharePredicates &predicates, const DataShareValuesBucket &value) override; - int Delete(const Uri &uri, const DataSharePredicates &predicates) override; + std::pair Delete(const Uri &uri, const DataSharePredicates &predicates) override; std::shared_ptr Query(const Uri &uri, const DataSharePredicates &predicates, std::vector &columns, DatashareBusinessError &businessError) override; int BatchInsert(const Uri &uri, const std::vector &values) override; diff --git a/dataBusiness/contacts/src/contacts_datashare_stub_impl.cpp b/dataBusiness/contacts/src/contacts_datashare_stub_impl.cpp index ba7b62e..c63d76c 100644 --- a/dataBusiness/contacts/src/contacts_datashare_stub_impl.cpp +++ b/dataBusiness/contacts/src/contacts_datashare_stub_impl.cpp @@ -23,6 +23,8 @@ namespace OHOS { namespace DataShare { using DataObsMgrClient = OHOS::AAFwk::DataObsMgrClient; +constexpr int DATA_SHARE_ERR = -1; +constexpr int DATA_SHARE_EOK = 0; void ContactsDataShareStubImpl::SetContactsDataAbility(std::shared_ptr extension) { @@ -82,56 +84,53 @@ std::shared_ptr ContactsDataShareStubImpl::GetOwner(const U return nullptr; } -int ContactsDataShareStubImpl::Insert(const Uri &uri, const DataShareValuesBucket &value) +std::pair ContactsDataShareStubImpl::Insert(const Uri &uri, const DataShareValuesBucket &value) { HILOG_INFO("insert begin."); - int ret = 0; auto extension = GetOwner(uri); if (extension == nullptr) { HILOG_ERROR("insert failed, extension is null."); - return ret; + return std::make_pair(DATA_SHARE_ERR, 0); } - ret = extension->Insert(uri, value); + auto ret = extension->Insert(uri, value); HILOG_INFO("insert end successfully. ret: %{public}d", ret); if (ret != Contacts::OPERATION_ERROR) { NotifyChange(uri); } - return ret; + return std::make_pair(DATA_SHARE_EOK, ret); } -int ContactsDataShareStubImpl::Update(const Uri &uri, const DataSharePredicates &predicates, +std::pair ContactsDataShareStubImpl::Update(const Uri &uri, const DataSharePredicates &predicates, const DataShareValuesBucket &value) { HILOG_INFO("update begin."); - int ret = 0; auto extension = GetOwner(uri); if (extension == nullptr) { HILOG_ERROR("update failed, extension is null."); - return ret; + return std::make_pair(DATA_SHARE_ERR, 0); } - ret = extension->Update(uri, predicates, value); + auto ret = extension->Update(uri, predicates, value); HILOG_INFO("update end successfully. ret: %{public}d", ret); if (ret != Contacts::OPERATION_ERROR) { NotifyChange(uri); } - return ret; + return std::make_pair(DATA_SHARE_EOK, ret); } -int ContactsDataShareStubImpl::Delete(const Uri &uri, const DataSharePredicates &predicates) +std::pair ContactsDataShareStubImpl::Delete(const Uri &uri, const DataSharePredicates &predicates) { HILOG_INFO("delete begin."); - int ret = 0; auto extension = GetOwner(uri); if (extension == nullptr) { HILOG_ERROR("delete failed, extension is null."); - return ret; + return std::make_pair(DATA_SHARE_ERR, 0); } - ret = extension->Delete(uri, predicates); + auto ret = extension->Delete(uri, predicates); HILOG_INFO("delete end successfully. ret: %{public}d", ret); if (ret != Contacts::OPERATION_ERROR) { NotifyChange(uri); } - return ret; + return std::make_pair(DATA_SHARE_EOK, ret); } std::shared_ptr ContactsDataShareStubImpl::Query(const Uri &uri, -- Gitee