diff --git a/datamgr_service/services/distributeddataservice/framework/cloud/cloud_server.cpp b/datamgr_service/services/distributeddataservice/framework/cloud/cloud_server.cpp index 9d9c4a7d6c64b89fc936878d530e748bda8bb3c3..db325e4cbf529f707e2375e695ebf54db3d3f672 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 0000000000000000000000000000000000000000..ddeb83912f7bba8bd67f6e434aacbe396a4599ef --- /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 a068eb5a25a1770ceca07a7fa28937da3e97e3d9..1e751b2706c3a29bbe8aa8ad86133269a42c2c3f 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 0000000000000000000000000000000000000000..fb4c139ca4506664345ceb9db1b0a75b7287d560 --- /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 3a12a7aa37cf1c75c57af770e0bc85cf189f0b5f..5fdd771538d8368f3c5bd380a0d315f0e7c1d15f 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 f10afb2792037777f773b968b56594c0e6c325b6..09df857bc4c2295efb8dbcc5843c5fde10a8c370 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 655e15055176b882a72204ac42e5f7ecc9155853..2390ac353cf98359e12bc4e28e19c90a82b3b241 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 3ef7737d36b4a1315a641258715050eda87f30ff..e26ab9a300a391061c68b77f6581fbde296241d1 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 e01d9d4b94660178f418fd7c087f6399f2ecc7ae..3c192df587c88122dfd773237308a77f0ff3ba85 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 1247d8350c60c884ab2a9d2adb8cf48b8daf2baf..d103e98d61fd6de9f86d55ff27e91021380223c6 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 d9bb24e96bcdc24f7caa47c365a463cdee67f8a0..c6f8133f155527d6e8c710e5b4252f848669021b 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 13b4764cc3d88122802a11e15254aa03e4e4a931..053cb14cee07118cb65443c5e7f8d374395d01d1 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 e7941529b984e1cca8da2d4da44f22f1a567516f..06e123c136fa8dcd502f9c9ae362efd4e5b4cd68 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 57a50c64521f134e4d0ced29ba6f19fb49081574..d989703217905f7571084200c7024db67b4a4c5a 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 cbfad21d47adde47d076fe19d1f346d4fee84725..a933d0a1f4c237cf21f20f885c66e3812e5c216d 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 4f9e86d26e69e4333a4a70f7e86092cf381d56e1..1950c649fa6605a16422e27f0f4cfe57cd731ae1 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; };