From cdf07fb5fcb11fbe810a737fa0752d2db8aaf171 Mon Sep 17 00:00:00 2001 From: zuojiangjiang Date: Thu, 9 Nov 2023 11:40:01 +0800 Subject: [PATCH] update Signed-off-by: zuojiangjiang --- .../framework/cloud/cloud_server.cpp | 51 +------------ .../framework/cloud/sharing_center.cpp | 65 +++++++++++++++++ .../framework/include/cloud/cloud_server.h | 23 +----- .../framework/include/cloud/sharing_center.h | 73 +++++++++++++++++++ .../service/cloud/cloud_service_impl.cpp | 26 ++++--- .../service/cloud/cloud_service_impl.h | 7 +- .../service/cloud/cloud_service_stub.cpp | 12 +-- .../js/napi/cloud_data/src/js_cloud_share.cpp | 24 +++--- .../js/napi/cloud_data/src/js_cloud_utils.cpp | 6 +- .../cloud_data/src/js_const_properties.cpp | 10 +-- .../cloud_data/include/cloud_service_proxy.h | 4 +- .../cloud_data/include/cloud_types_util.h | 11 +-- .../cloud_data/src/cloud_service_proxy.cpp | 8 +- .../cloud_data/src/cloud_types_util.cpp | 12 +-- .../cloud_data/include/cloud_service.h | 4 +- .../cloud_data/include/cloud_types.h | 22 +++--- 16 files changed, 218 insertions(+), 140 deletions(-) create mode 100644 datamgr_service/services/distributeddataservice/framework/cloud/sharing_center.cpp create mode 100644 datamgr_service/services/distributeddataservice/framework/include/cloud/sharing_center.h diff --git a/datamgr_service/services/distributeddataservice/framework/cloud/cloud_server.cpp b/datamgr_service/services/distributeddataservice/framework/cloud/cloud_server.cpp index 9d9c4a7d..db325e4c 100644 --- a/datamgr_service/services/distributeddataservice/framework/cloud/cloud_server.cpp +++ b/datamgr_service/services/distributeddataservice/framework/cloud/cloud_server.cpp @@ -60,59 +60,16 @@ std::shared_ptr CloudServer::ConnectCloudDB(uint32_t tokenId, const Clo return nullptr; } -void CloudServer::Clean(int32_t userId) -{ -} - -void CloudServer::ReleaseUserInfo(int32_t userId) -{ -} - -int32_t CloudServer::Share(int32_t userId, const std::string &bundleName, const std::string &sharingRes, - const std::vector &participants, Result>> &result) -{ - return 0; -} - -int32_t CloudServer::Unshare(int32_t userId, const std::string &bundleName, const std::string &sharingRes, - const std::vector &participants, Result>> &result) -{ - return 0; -} - -int32_t CloudServer::ExitSharing(int32_t userId, const std::string &bundleName, - const std::string &sharingRes, Result &result) -{ - return 0; -} - -int32_t CloudServer::ChangePrivilege(int32_t userId, const std::string &bundleName, const std::string &sharingRes, - const std::vector &participants, Result>> &result) +std::shared_ptr CloudServer::ConnectSharingCenter(int32_t userId) { - return 0; -} - -int32_t CloudServer::QueryParticipants(int32_t userId, const std::string &bundleName, - const std::string &sharingRes, Result> &result) -{ - return 0; -} - -int32_t CloudServer::QueryParticipantsByInvitation(int32_t userId, const std::string &bundleName, - const std::string &invitationCode, Result> &result) -{ - return 0; + return nullptr; } -int32_t CloudServer::ConfirmInvitation(int32_t userId, const std::string &bundleName, - const std::string &invitationCode, SharingStatus sharingStatus, Result &result) +void CloudServer::Clean(int32_t userId) { - return 0; } -int32_t CloudServer::ChangeConfirmation(int32_t userId, const std::string &bundleName, - const std::string &sharingRes,SharingStatus sharingStatus, Result &result) +void CloudServer::ReleaseUserInfo(int32_t userId) { - return 0; } } // namespace OHOS::DistributedData \ No newline at end of file diff --git a/datamgr_service/services/distributeddataservice/framework/cloud/sharing_center.cpp b/datamgr_service/services/distributeddataservice/framework/cloud/sharing_center.cpp new file mode 100644 index 00000000..ddeb8391 --- /dev/null +++ b/datamgr_service/services/distributeddataservice/framework/cloud/sharing_center.cpp @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "cloud/sharing_center.h" +namespace OHOS::DistributedData { +int32_t SharingCenter::Share(int32_t userId, const std::string &bundleName, const std::string &sharingRes, + const std::vector &participants, Result>> &result) +{ + return 0; +} + +int32_t SharingCenter::Unshare(int32_t userId, const std::string &bundleName, const std::string &sharingRes, + const std::vector &participants, Result>> &result) +{ + return 0; +} + +int32_t SharingCenter::ExitSharing(int32_t userId, const std::string &bundleName, + const std::string &sharingRes, Result &result) +{ + return 0; +} + +int32_t SharingCenter::ChangePrivilege(int32_t userId, const std::string &bundleName, const std::string &sharingRes, + const std::vector &participants, Result>> &result) +{ + return 0; +} + +int32_t SharingCenter::QueryParticipants(int32_t userId, const std::string &bundleName, + const std::string &sharingRes, Result> &result) +{ + return 0; +} + +int32_t SharingCenter::QueryParticipantsByInvitation(int32_t userId, const std::string &bundleName, + const std::string &invitationCode, Result> &result) +{ + return 0; +} + +int32_t SharingCenter::ConfirmInvitation(int32_t userId, const std::string &bundleName, + const std::string &invitationCode, Confirmation confirmation, Result &result) +{ + return 0; +} + +int32_t SharingCenter::ChangeConfirmation(int32_t userId, const std::string &bundleName, + const std::string &sharingRes, Confirmation confirmation, Result &result) +{ + return 0; +} +} // namespace OHOS::DistributedData \ No newline at end of file diff --git a/datamgr_service/services/distributeddataservice/framework/include/cloud/cloud_server.h b/datamgr_service/services/distributeddataservice/framework/include/cloud/cloud_server.h index a068eb5a..1e751b27 100644 --- a/datamgr_service/services/distributeddataservice/framework/include/cloud/cloud_server.h +++ b/datamgr_service/services/distributeddataservice/framework/include/cloud/cloud_server.h @@ -19,15 +19,12 @@ #include "cloud/cloud_db.h" #include "cloud/cloud_info.h" #include "cloud/schema_meta.h" -#include "itypes_util.h" -#include "cloud_types.h" +#include "cloud/sharing_center.h" #include "visibility.h" namespace OHOS::DistributedData { class API_EXPORT CloudServer { public: using Database = SchemaMeta::Database; - using Participant = OHOS::CloudData::Participant; - using SharingStatus = OHOS::CloudData::SharingStatus; API_EXPORT static CloudServer *GetInstance(); API_EXPORT static bool RegisterCloudInstance(CloudServer *instance); @@ -37,26 +34,10 @@ public: virtual int32_t Unsubscribe(int32_t userId, const std::map> &dbs); virtual std::shared_ptr ConnectAssetLoader(uint32_t tokenId, const Database &dbMeta); virtual std::shared_ptr ConnectCloudDB(uint32_t tokenId, const Database &dbMeta); + virtual std::shared_ptr ConnectSharingCenter(int32_t userId); virtual void Clean(int32_t userId); virtual void ReleaseUserInfo(int32_t userId); - virtual int32_t Share(int32_t userId, const std::string &bundleName, const std::string &sharingRes, - const std::vector &participants, Result>> &result); - virtual int32_t Unshare(int32_t userId, const std::string &bundleName, const std::string &sharingRes, - const std::vector &participants, Result>> &result); - virtual int32_t ExitSharing(int32_t userId, const std::string &bundleName, - const std::string &sharingRes, Result &result); - virtual int32_t ChangePrivilege(int32_t userId, const std::string &bundleName, const std::string &sharingRes, - const std::vector &participants, Result>> &result); - virtual int32_t QueryParticipants(int32_t userId, const std::string &bundleName, - const std::string &sharingRes, Result> &result); - virtual int32_t QueryParticipantsByInvitation(int32_t userId, const std::string &bundleName, - const std::string &invitationCode, Result> &result); - virtual int32_t ConfirmInvitation(int32_t userId, const std::string &bundleName, - const std::string &invitationCode, SharingStatus sharingStatus, Result &result); - virtual int32_t ChangeConfirmation(int32_t userId, const std::string &bundleName, - const std::string &sharingRes,SharingStatus sharingStatus, Result &result); - private: static CloudServer *instance_; }; diff --git a/datamgr_service/services/distributeddataservice/framework/include/cloud/sharing_center.h b/datamgr_service/services/distributeddataservice/framework/include/cloud/sharing_center.h new file mode 100644 index 00000000..fb4c139c --- /dev/null +++ b/datamgr_service/services/distributeddataservice/framework/include/cloud/sharing_center.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_DISTRIBUTED_DATA_SERVICES_FRAMEWORK_CLOUD_SHARING_CENTER_H +#define OHOS_DISTRIBUTED_DATA_SERVICES_FRAMEWORK_CLOUD_SHARING_CENTER_H + +#include "itypes_util.h" +#include "visibility.h" +namespace OHOS::DistributedData { +class API_EXPORT SharingCenter { +public: + enum Role { + ROLE_NIL = -1, + ROLE_INVITER, + ROLE_INVITEES, + ROLE_BUTT + }; + + enum Confirmation { + CFM_NIL = -1, + CFM_UNKNOWN, + CFM_ACCEPTED, + CFM_REJECTED, + CFM_SUSPENDED, + CFM_BUTT + }; + + struct Privilege { + bool readable = false; + bool writeable = false; + bool creatable = false; + bool deletable = false; + bool shareable = false; + }; + + struct Participant { + std::string identity; + Role role = ROLE_NIL; + Confirmation status = CFM_NIL; + Privilege privilege; + }; + + virtual int32_t Share(int32_t userId, const std::string &bundleName, const std::string &sharingRes, + const std::vector &participants, Result>> &result); + virtual int32_t Unshare(int32_t userId, const std::string &bundleName, const std::string &sharingRes, + const std::vector &participants, Result>> &result); + virtual int32_t ExitSharing(int32_t userId, const std::string &bundleName, + const std::string &sharingRes, Result &result); + virtual int32_t ChangePrivilege(int32_t userId, const std::string &bundleName, const std::string &sharingRes, + const std::vector &participants, Result>> &result); + virtual int32_t QueryParticipants(int32_t userId, const std::string &bundleName, + const std::string &sharingRes, Result> &result); + virtual int32_t QueryParticipantsByInvitation(int32_t userId, const std::string &bundleName, + const std::string &invitationCode, Result> &result); + virtual int32_t ConfirmInvitation(int32_t userId, const std::string &bundleName, + const std::string &invitationCode, Confirmation confirmation, Result &result); + virtual int32_t ChangeConfirmation(int32_t userId, const std::string &bundleName, + const std::string &sharingRes, Confirmation confirmation, Result &result); +}; +} // namespace OHOS::DistributedData +#endif // OHOS_DISTRIBUTED_DATA_SERVICES_FRAMEWORK_CLOUD_SHARING_CENTER_H diff --git a/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.cpp b/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.cpp index 3a12a7aa..5fdd7715 100644 --- a/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.cpp +++ b/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.cpp @@ -600,7 +600,7 @@ int32_t CloudServiceImpl::Share(const std::string &sharingRes, const std::vector if (instance == nullptr) { return NOT_SUPPORT; } - return instance->Share(tokenInfo.userID, tokenInfo.bundleName, sharingRes, participants, result); + return SUCCESS; } int32_t CloudServiceImpl::Unshare(const std::string &sharingRes, const std::vector &participants, @@ -610,7 +610,7 @@ int32_t CloudServiceImpl::Unshare(const std::string &sharingRes, const std::vect if (instance == nullptr) { return NOT_SUPPORT; } - return instance->Unshare(tokenInfo.userID, tokenInfo.bundleName, sharingRes, participants, result); + return SUCCESS; } int32_t CloudServiceImpl::ExitSharing(const std::string &sharingRes, Result &result) @@ -619,7 +619,7 @@ int32_t CloudServiceImpl::ExitSharing(const std::string &sharingRes, ResultExitSharing(tokenInfo.userID, tokenInfo.bundleName, sharingRes, result); + return SUCCESS; } int32_t CloudServiceImpl::ChangePrivilege(const std::string &sharingRes, const std::vector &participants, @@ -629,7 +629,7 @@ int32_t CloudServiceImpl::ChangePrivilege(const std::string &sharingRes, const s if (instance == nullptr) { return NOT_SUPPORT; } - return instance->ChangePrivilege(tokenInfo.userID, tokenInfo.bundleName, sharingRes, participants, result); + return SUCCESS; } int32_t CloudServiceImpl::QueryParticipants(const std::string &sharingRes, Result> &result) @@ -638,7 +638,7 @@ int32_t CloudServiceImpl::QueryParticipants(const std::string &sharingRes, Resul if (instance == nullptr) { return NOT_SUPPORT; } - return instance->QueryParticipants(tokenInfo.userID, tokenInfo.bundleName, sharingRes, result); + return SUCCESS; } int32_t CloudServiceImpl::QueryParticipantsByInvitation(const std::string &invitationCode, @@ -648,30 +648,31 @@ int32_t CloudServiceImpl::QueryParticipantsByInvitation(const std::string &invit if (instance == nullptr) { return NOT_SUPPORT; } - return instance->QueryParticipantsByInvitation(tokenInfo.userID, tokenInfo.bundleName, invitationCode, result); + return SUCCESS; } -int32_t CloudServiceImpl::ConfirmInvitation(const std::string &invitationCode, SharingStatus sharingStatus, +int32_t CloudServiceImpl::ConfirmInvitation(const std::string &invitationCode, Confirmation confirmation, Result &result) { auto [instance, hapInfo] = GetSharingHandle(); if (instance == nullptr) { return NOT_SUPPORT; } - return instance->ConfirmInvitation(tokenInfo.userID, tokenInfo.bundleName, invitationCode, sharingStatus, result); + return SUCCESS; } int32_t CloudServiceImpl::ChangeConfirmation( - const std::string &sharingRes, SharingStatus sharingStatus, Result &result) + const std::string &sharingRes, Confirmation confirmation, Result &result) { auto [instance, hapInfo] = GetSharingHandle(); if (instance == nullptr) { return NOT_SUPPORT; } - return instance->ChangeConfirmation(tokenInfo.userID, tokenInfo.bundleName, sharingRes, sharingStatus, result); + return SUCCESS; } -std::pair CloudServiceImpl::GetSharingHandle() +std::pair, CloudServiceImpl::HapInfo> + CloudServiceImpl::GetSharingHandle() { auto tokenId = IPCSkeleton::GetCallingTokenID(); HapTokenInfo tokenInfo; @@ -684,6 +685,7 @@ std::pair CloudService if (instance == nullptr) { return { nullptr, {} }; } - return { instance, { tokenInfo.userID, tokenInfo.bundleName } }; + auto handle = instance->ConnectSharingCenter(tokenInfo.userID); + return { handle, { tokenInfo.userID, tokenInfo.bundleName } }; } } // namespace OHOS::CloudData \ No newline at end of file diff --git a/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.h b/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.h index f10afb27..09df857b 100644 --- a/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.h +++ b/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_impl.h @@ -22,6 +22,7 @@ #include "cloud/cloud_info.h" #include "cloud/schema_meta.h" #include "cloud/subscription.h" +#include "cloud/sharing_center.h" #include "cloud_service_stub.h" #include "feature/static_acts.h" #include "sync_manager.h" @@ -52,10 +53,10 @@ public: int32_t QueryParticipants(const std::string &sharingRes, Result> &result) override; int32_t QueryParticipantsByInvitation(const std::string &invitationCode, Result> &result) override; - int32_t ConfirmInvitation(const std::string &invitationCode, SharingStatus sharingStatus, + int32_t ConfirmInvitation(const std::string &invitationCode, Confirmation confirmation, Result &result) override; int32_t ChangeConfirmation( - const std::string &sharingRes, SharingStatus sharingStatus, Result &result) override; + const std::string &sharingRes, Confirmation confirmation, Result &result) override; private: using StaticActs = DistributedData::StaticActs; @@ -107,7 +108,7 @@ private: bool DoSubscribe(int32_t user); bool ReleaseUserInfo(int32_t user); int32_t DoClean(CloudInfo &cloudInfo, const std::map &actions); - std::pair GetSharingHandle(); + std::pair, HapInfo> GetSharingHandle(); std::shared_ptr executor_; SyncManager syncManager_; diff --git a/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_stub.cpp b/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_stub.cpp index 655e1505..2390ac35 100644 --- a/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_stub.cpp +++ b/datamgr_service/services/distributeddataservice/service/cloud/cloud_service_stub.cpp @@ -191,26 +191,26 @@ int32_t CloudServiceStub::OnQueryParticipantsByInvitation( int32_t CloudServiceStub::OnConfirmInvitation( const std::string &invitationCode, MessageParcel &data, MessageParcel &reply) { - SharingStatus sharingStatus; - if (!ITypesUtil::Unmarshal(data, sharingStatus)) { + Confirmation confirmation; + if (!ITypesUtil::Unmarshal(data, confirmation)) { ZLOGE("Unmarshal invitationCode:%{public}s", Anonymous::Change(invitationCode).c_str()); return IPC_STUB_INVALID_DATA_ERR; } Result result; - auto status = ConfirmInvitation(invitationCode, sharingStatus, result); + auto status = ConfirmInvitation(invitationCode, confirmation, result); return ITypesUtil::Marshal(reply, status, result) ? ERR_NONE : IPC_STUB_WRITE_PARCEL_ERR; } int32_t CloudServiceStub::OnChangeConfirmation( const std::string &sharingRes, MessageParcel &data, MessageParcel &reply) { - SharingStatus sharingStatus; - if (!ITypesUtil::Unmarshal(data, sharingStatus)) { + Confirmation confirmation; + if (!ITypesUtil::Unmarshal(data, confirmation)) { ZLOGE("Unmarshal sharingRes:%{public}s", Anonymous::Change(sharingRes).c_str()); return IPC_STUB_INVALID_DATA_ERR; } Result result; - auto status = ChangeConfirmation(sharingRes, sharingStatus, result); + auto status = ChangeConfirmation(sharingRes, confirmation, result); return ITypesUtil::Marshal(reply, status, result) ? ERR_NONE : IPC_STUB_WRITE_PARCEL_ERR; } } // namespace OHOS::CloudData diff --git a/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_share.cpp b/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_share.cpp index 3ef7737d..e26ab9a3 100644 --- a/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_share.cpp +++ b/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_share.cpp @@ -339,7 +339,7 @@ napi_value ConfirmInvitation(napi_env env, napi_callback_info info) { struct ConfirmInvitationContext : public ContextBase { std::string invitationCode; - SharingStatus sharingStatus; + Confirmation confirmation; Result value; }; auto ctxt = std::make_shared(); @@ -348,12 +348,12 @@ napi_value ConfirmInvitation(napi_env env, napi_callback_info info) int status = JSUtils::Convert2Value(env, argv[0], ctxt->invitationCode); ASSERT_BUSINESS_ERR(ctxt, status == JSUtils::OK, Status::INVALID_ARGUMENT, "The type of invitationCode must be string."); - int32_t sharingStatus; - status = JSUtils::Convert2Value(env, argv[1], sharingStatus); + int32_t confirmation; + status = JSUtils::Convert2Value(env, argv[1], confirmation); ASSERT_BUSINESS_ERR(ctxt, status == JSUtils::OK && - sharingStatus >= SharingStatus::STATUS_UNKNOWN && sharingStatus <= SharingStatus::STATUS_SUSPENDED, + confirmation > Confirmation::CFM_NIL && confirmation <= Confirmation::CFM_BUTT, Status::INVALID_ARGUMENT, "The type of status must be Status."); - ctxt->sharingStatus = static_cast(sharingStatus); + ctxt->confirmation = static_cast(confirmation); }); auto execute = [env, ctxt]() { auto [status, proxy] = CloudManager::GetInstance().GetCloudService(); @@ -365,7 +365,7 @@ napi_value ConfirmInvitation(napi_env env, napi_callback_info info) napi_ok : napi_generic_failure; return; } - int32_t result = proxy->ConfirmInvitation(ctxt->invitationCode, ctxt->sharingStatus, ctxt->value); + int32_t result = proxy->ConfirmInvitation(ctxt->invitationCode, ctxt->confirmation, ctxt->value); LOG_DEBUG("confirm invitation result %{public}d", result); ctxt->status = (GenerateNapiError(result, ctxt->jsCode, ctxt->error) == Status::SUCCESS) ? napi_ok : napi_generic_failure; @@ -389,7 +389,7 @@ napi_value ChangeConfirmation(napi_env env, napi_callback_info info) { struct ChangeConfirmationContext : public ContextBase { std::string sharingRes; - SharingStatus sharingStatus; + Confirmation confirmation; Result value; }; auto ctxt = std::make_shared(); @@ -398,12 +398,12 @@ napi_value ChangeConfirmation(napi_env env, napi_callback_info info) int status = JSUtils::Convert2Value(env, argv[0], ctxt->sharingRes); ASSERT_BUSINESS_ERR(ctxt, status == JSUtils::OK, Status::INVALID_ARGUMENT, "The type of sharingRes must be string."); - int32_t sharingStatus; - status = JSUtils::Convert2Value(env, argv[1], sharingStatus); + int32_t confirmation; + status = JSUtils::Convert2Value(env, argv[1], confirmation); ASSERT_BUSINESS_ERR(ctxt, status == JSUtils::OK && - sharingStatus >= SharingStatus::STATUS_UNKNOWN && sharingStatus <= SharingStatus::STATUS_SUSPENDED, + confirmation > Confirmation::CFM_NIL && confirmation < Confirmation::CFM_BUTT, Status::INVALID_ARGUMENT, "The type of status must be Status."); - ctxt->sharingStatus = static_cast(sharingStatus); + ctxt->confirmation = static_cast(confirmation); }); auto execute = [env, ctxt]() { auto [status, proxy] = CloudManager::GetInstance().GetCloudService(); @@ -415,7 +415,7 @@ napi_value ChangeConfirmation(napi_env env, napi_callback_info info) napi_ok : napi_generic_failure; return; } - int32_t result = proxy->ChangeConfirmation(ctxt->sharingRes, ctxt->sharingStatus, ctxt->value); + int32_t result = proxy->ChangeConfirmation(ctxt->sharingRes, ctxt->confirmation, ctxt->value); LOG_DEBUG("change confirmation result %{public}d", result); ctxt->status = (GenerateNapiError(result, ctxt->jsCode, ctxt->error) == Status::SUCCESS) ? napi_ok : napi_generic_failure; diff --git a/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_utils.cpp b/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_utils.cpp index e01d9d4b..3c192df5 100644 --- a/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_utils.cpp +++ b/relational_store/frameworks/js/napi/cloud_data/src/js_cloud_utils.cpp @@ -37,12 +37,12 @@ int32_t Convert2Value(napi_env env, napi_value input, Participant &output) } NAPI_CALL_RETURN_ERR(GET_PROPERTY(env, input, output, identity), napi_invalid_arg); NAPI_CALL_RETURN_ERR(GetOptionalValue(env, input, "role", output.role), napi_invalid_arg); - if (output.role < CloudData::Role::ROLE_INVITER || output.role > CloudData::Role::ROLE_INVITEE) { + if (output.role < CloudData::Role::ROLE_INVITER || output.role > CloudData::Role::ROLE_INVITEES) { return napi_invalid_arg; } NAPI_CALL_RETURN_ERR(GetOptionalValue(env, input, "status", output.status), napi_invalid_arg); - if (output.status < CloudData::SharingStatus::STATUS_UNKNOWN || - output.status > CloudData::SharingStatus::STATUS_SUSPENDED) { + if (output.status < CloudData::Confirmation::CFM_UNKNOWN || + output.status > CloudData::Confirmation::CFM_SUSPENDED) { return napi_invalid_arg; } NAPI_CALL_RETURN_ERR(GetOptionalValue(env, input, "privilege", output.privilege), napi_invalid_arg); diff --git a/relational_store/frameworks/js/napi/cloud_data/src/js_const_properties.cpp b/relational_store/frameworks/js/napi/cloud_data/src/js_const_properties.cpp index 1247d835..d103e98d 100644 --- a/relational_store/frameworks/js/napi/cloud_data/src/js_const_properties.cpp +++ b/relational_store/frameworks/js/napi/cloud_data/src/js_const_properties.cpp @@ -48,7 +48,7 @@ static napi_value ExportRole(napi_env env) napi_value role = nullptr; napi_create_object(env, &role); SetNamedProperty(env, role, "ROLE_INVITER", Role::ROLE_INVITER); - SetNamedProperty(env, role, "ROLE_INVITEE", Role::ROLE_INVITEE); + SetNamedProperty(env, role, "ROLE_INVITEE", Role::ROLE_INVITEES); napi_object_freeze(env, role); return role; } @@ -57,10 +57,10 @@ static napi_value ExportShareStatus(napi_env env) { napi_value status = nullptr; napi_create_object(env, &status); - SetNamedProperty(env, status, "STATUS_UNKNOWN", SharingStatus::STATUS_UNKNOWN); - SetNamedProperty(env, status, "STATUS_ACCEPTED", SharingStatus::STATUS_ACCEPTED); - SetNamedProperty(env, status, "STATUS_REJECTED", SharingStatus::STATUS_REJECTED); - SetNamedProperty(env, status, "STATUS_SUSPENDED", SharingStatus::STATUS_SUSPENDED); + SetNamedProperty(env, status, "STATUS_UNKNOWN", Confirmation::CFM_UNKNOWN); + SetNamedProperty(env, status, "STATUS_ACCEPTED", Confirmation::CFM_ACCEPTED); + SetNamedProperty(env, status, "STATUS_REJECTED", Confirmation::CFM_REJECTED); + SetNamedProperty(env, status, "STATUS_SUSPENDED", Confirmation::CFM_SUSPENDED); napi_object_freeze(env, status); return status; } diff --git a/relational_store/frameworks/native/cloud_data/include/cloud_service_proxy.h b/relational_store/frameworks/native/cloud_data/include/cloud_service_proxy.h index d9bb24e9..c6f8133f 100644 --- a/relational_store/frameworks/native/cloud_data/include/cloud_service_proxy.h +++ b/relational_store/frameworks/native/cloud_data/include/cloud_service_proxy.h @@ -41,10 +41,10 @@ public: int32_t QueryParticipants(const std::string &sharingRes, Result> &result) override; int32_t QueryParticipantsByInvitation(const std::string &invitationCode, Result> &result) override; - int32_t ConfirmInvitation(const std::string &invitationCode, SharingStatus sharingStatus, + int32_t ConfirmInvitation(const std::string &invitationCode, Confirmation confirmation, Result &result) override; int32_t ChangeConfirmation(const std::string &sharingRes, - SharingStatus sharingStatus, Result &result) override; + Confirmation confirmation, Result &result) override; private: sptr remote_; diff --git a/relational_store/frameworks/native/cloud_data/include/cloud_types_util.h b/relational_store/frameworks/native/cloud_data/include/cloud_types_util.h index 13b4764c..053cb14c 100644 --- a/relational_store/frameworks/native/cloud_data/include/cloud_types_util.h +++ b/relational_store/frameworks/native/cloud_data/include/cloud_types_util.h @@ -22,35 +22,30 @@ namespace OHOS::ITypesUtil { using OHOS::CloudData::Participant; using OHOS::CloudData::Privilege; using OHOS::CloudData::Role; -using OHOS::CloudData::SharingStatus; +using OHOS::CloudData::Confirmation; using OHOS::CloudData::SharingCode; template<> bool Marshalling(const Participant &input, MessageParcel &data); - template<> bool Unmarshalling(Participant &output, MessageParcel &data); template<> bool Marshalling(const Privilege &input, MessageParcel &data); - template<> bool Unmarshalling(Privilege &output, MessageParcel &data); template<> bool Marshalling(const Role &input, MessageParcel &data); - template<> bool Unmarshalling(Role &output, MessageParcel &data); template<> -bool Marshalling(const SharingStatus &input, MessageParcel &data); - +bool Marshalling(const Confirmation &input, MessageParcel &data); template<> -bool Unmarshalling(SharingStatus &output, MessageParcel &data); +bool Unmarshalling(Confirmation &output, MessageParcel &data); template<> bool Marshalling(const SharingCode &input, MessageParcel &data); - template<> bool Unmarshalling(SharingCode &output, MessageParcel &data); } // namespace OHOS::ITypesUtil diff --git a/relational_store/frameworks/native/cloud_data/src/cloud_service_proxy.cpp b/relational_store/frameworks/native/cloud_data/src/cloud_service_proxy.cpp index e7941529..06e123c1 100644 --- a/relational_store/frameworks/native/cloud_data/src/cloud_service_proxy.cpp +++ b/relational_store/frameworks/native/cloud_data/src/cloud_service_proxy.cpp @@ -176,10 +176,10 @@ int32_t CloudServiceProxy::QueryParticipantsByInvitation( } int32_t CloudServiceProxy::ConfirmInvitation(const std::string &invitationCode, - SharingStatus sharingStatus, Result &result) + Confirmation confirmation, Result &result) { MessageParcel reply; - int32_t status = IPC_SEND(TRANS_CONFIRM_INVITATION, reply, invitationCode, sharingStatus); + int32_t status = IPC_SEND(TRANS_CONFIRM_INVITATION, reply, invitationCode, confirmation); if (status != SUCCESS) { LOG_ERROR("status:0x%{public}x invitationCode:%{public}.6s", status, invitationCode.c_str()); } @@ -188,10 +188,10 @@ int32_t CloudServiceProxy::ConfirmInvitation(const std::string &invitationCode, } int32_t CloudServiceProxy::ChangeConfirmation(const std::string &sharingRes, - SharingStatus sharingStatus, Result &result) + Confirmation confirmation, Result &result) { MessageParcel reply; - int32_t status = IPC_SEND(TRANS_CHANGE_CONFIRMATION, reply, sharingRes, sharingStatus); + int32_t status = IPC_SEND(TRANS_CHANGE_CONFIRMATION, reply, sharingRes, confirmation); if (status != SUCCESS) { LOG_ERROR("status:0x%{public}x invitationCode:%{public}.6s", status, sharingRes.c_str()); } diff --git a/relational_store/frameworks/native/cloud_data/src/cloud_types_util.cpp b/relational_store/frameworks/native/cloud_data/src/cloud_types_util.cpp index 57a50c64..d9897032 100644 --- a/relational_store/frameworks/native/cloud_data/src/cloud_types_util.cpp +++ b/relational_store/frameworks/native/cloud_data/src/cloud_types_util.cpp @@ -52,7 +52,7 @@ template<> bool Unmarshalling(Role &output, MessageParcel &data) { int32_t result; - if (!data.ReadInt32(result) || result < Role::ROLE_INVITER || result > Role::ROLE_INVITEE) { + if (!data.ReadInt32(result) || result < Role::ROLE_NIL || result > Role::ROLE_INVITEES) { return false; } output = static_cast(result); @@ -60,20 +60,20 @@ bool Unmarshalling(Role &output, MessageParcel &data) } template<> -bool Marshalling(const SharingStatus &input, MessageParcel &data) +bool Marshalling(const Confirmation &input, MessageParcel &data) { return data.WriteInt32(static_cast(input)); } template<> -bool Unmarshalling(SharingStatus &output, MessageParcel &data) +bool Unmarshalling(Confirmation &output, MessageParcel &data) { int32_t result; - if (!data.ReadInt32(result) || result < SharingStatus::STATUS_UNKNOWN || - result > SharingStatus::STATUS_SUSPENDED) { + if (!data.ReadInt32(result) || result < Confirmation::CFM_NIL || + result > Confirmation::CFM_SUSPENDED) { return false; } - output = static_cast(result); + output = static_cast(result); return true; } diff --git a/relational_store/interfaces/inner_api/cloud_data/include/cloud_service.h b/relational_store/interfaces/inner_api/cloud_data/include/cloud_service.h index cbfad21d..a933d0a1 100644 --- a/relational_store/interfaces/inner_api/cloud_data/include/cloud_service.h +++ b/relational_store/interfaces/inner_api/cloud_data/include/cloud_service.h @@ -86,10 +86,10 @@ public: virtual int32_t QueryParticipants(const std::string &sharingRes, Result> &result) = 0; virtual int32_t QueryParticipantsByInvitation(const std::string &invitationCode, Result> &result) = 0; - virtual int32_t ConfirmInvitation(const std::string &invitationCode, SharingStatus sharingStatus, + virtual int32_t ConfirmInvitation(const std::string &invitationCode, Confirmation confirmation, Result &result) = 0; virtual int32_t ChangeConfirmation(const std::string &sharingRes, - SharingStatus sharingStatus, Result &result) = 0; + Confirmation confirmation, Result &result) = 0; inline static constexpr const char *SERVICE_NAME = "cloud"; }; diff --git a/relational_store/interfaces/inner_api/cloud_data/include/cloud_types.h b/relational_store/interfaces/inner_api/cloud_data/include/cloud_types.h index 4f9e86d2..1950c649 100644 --- a/relational_store/interfaces/inner_api/cloud_data/include/cloud_types.h +++ b/relational_store/interfaces/inner_api/cloud_data/include/cloud_types.h @@ -20,15 +20,19 @@ namespace OHOS::CloudData { enum Role : int32_t { - ROLE_INVITER = 0, - ROLE_INVITEE + ROLE_NIL = -1, + ROLE_INVITER, + ROLE_INVITEES, + ROLE_BUTT }; -enum SharingStatus : int32_t { - STATUS_UNKNOWN = 0, - STATUS_ACCEPTED, - STATUS_REJECTED, - STATUS_SUSPENDED +enum Confirmation : int32_t { + CFM_NIL = -1, + CFM_UNKNOWN, + CFM_ACCEPTED, + CFM_REJECTED, + CFM_SUSPENDED, + CFM_BUTT }; struct Privilege { @@ -41,8 +45,8 @@ struct Privilege { struct Participant { std::string identity; - int32_t role = Role::ROLE_INVITER; - int32_t status = SharingStatus::STATUS_ACCEPTED; + int32_t role = Role::ROLE_NIL; + int32_t status = Confirmation::CFM_NIL; Privilege privilege; }; -- Gitee