diff --git a/services/distributeddataservice/framework/include/store/auto_cache.h b/services/distributeddataservice/framework/include/store/auto_cache.h index 1549d0f1ffad71187ab332752b26d7380926b7a6..cc9e6c79bd0df00fbc529d533774369e1f9d9ffa 100644 --- a/services/distributeddataservice/framework/include/store/auto_cache.h +++ b/services/distributeddataservice/framework/include/store/auto_cache.h @@ -52,24 +52,21 @@ public: API_EXPORT std::pair GetDBStore(const StoreMetaData &meta, const Watchers &watchers); - API_EXPORT Stores GetStoresIfPresent(uint32_t tokenId, const std::string &storeName = "", - const std::string &userId = ""); + API_EXPORT Stores GetStoresIfPresent(uint32_t tokenId, const std::string &storeName = ""); - API_EXPORT void CloseStore(uint32_t tokenId, const std::string &storeId = "", const std::string &userId = ""); + API_EXPORT void CloseStore(uint32_t tokenId, const std::string &storeId = ""); API_EXPORT void CloseStore(const Filter &filter); - API_EXPORT void SetObserver(uint32_t tokenId, const std::string &storeId, const Watchers &watchers, - const std::string &userId = ""); + API_EXPORT void SetObserver(uint32_t tokenId, const std::string &storeId, const Watchers &watchers); - API_EXPORT void Enable(uint32_t tokenId, const std::string &storeId = "", const std::string &userId = ""); + API_EXPORT void Enable(uint32_t tokenId, const std::string &storeId = ""); - API_EXPORT void Disable(uint32_t tokenId, const std::string &storeId, const std::string &userId = ""); + API_EXPORT void Disable(uint32_t tokenId, const std::string &storeId); private: AutoCache(); ~AutoCache(); - std::string GenerateKey(const std::string &userId, const std::string &storeId) const; void GarbageCollect(bool isForce); void StartTimer(); struct Delegate : public GeneralWatcher { diff --git a/services/distributeddataservice/framework/store/auto_cache.cpp b/services/distributeddataservice/framework/store/auto_cache.cpp index 0b17f5bc3e0e909a66038eb0237714dc63b178a7..aa692e4aedbb723526238ae60ab39cae09acb272 100644 --- a/services/distributeddataservice/framework/store/auto_cache.cpp +++ b/services/distributeddataservice/framework/store/auto_cache.cpp @@ -25,7 +25,6 @@ #include "utils/anonymous.h" namespace OHOS::DistributedData { using Account = AccountDelegate; -static constexpr const char *KEY_SEPARATOR = "###"; AutoCache &AutoCache::GetInstance() { static AutoCache cache; @@ -61,22 +60,12 @@ AutoCache::~AutoCache() } } -std::string AutoCache::GenerateKey(const std::string &userId, const std::string &storeId) const -{ - std::string key = ""; - if (userId.empty() || storeId.empty()) { - return key; - } - return key.append(userId).append(KEY_SEPARATOR).append(storeId); -} - std::pair AutoCache::GetDBStore(const StoreMetaData &meta, const Watchers &watchers) { Store store; - auto storeKey = GenerateKey(meta.user, meta.storeId); if (meta.storeType >= MAX_CREATOR_NUM || meta.storeType < 0 || !creators_[meta.storeType] || disables_.ContainIf(meta.tokenId, - [&storeKey](const std::set &stores) -> bool { return stores.count(storeKey) != 0; })) { + [&meta](const std::set &stores) -> bool { return stores.count(meta.storeId) != 0; })) { ZLOGW("storeType is invalid or store is disabled,user:%{public}s,bundleName:%{public}s,storeName:%{public}s", meta.user.c_str(), meta.bundleName.c_str(), meta.GetStoreAlias().c_str()); return { E_ERROR, store }; @@ -92,27 +81,28 @@ std::pair AutoCache::GetDBStore(const StoreMetaData & return { E_USER_DEACTIVATING, store }; } stores_.Compute(meta.tokenId, - [this, &meta, &watchers, &store, &storeKey](auto &, std::map &stores) -> bool { + [this, &meta, &watchers, &store](auto &, std::map &stores) -> bool { if (disableStores_.count(meta.dataDir) != 0) { ZLOGW("store is closing,tokenId:0x%{public}x,user:%{public}s,bundleName:%{public}s,storeId:%{public}s", meta.tokenId, meta.user.c_str(), meta.bundleName.c_str(), meta.GetStoreAlias().c_str()); return !stores.empty(); } - auto it = stores.find(storeKey); - if (it != stores.end()) { + auto it = stores.find(meta.storeId); + if (it != stores.end() && it->second.GetUser() == atoi(meta.user.c_str())) { if (!watchers.empty()) { it->second.SetObservers(watchers); } store = it->second; return !stores.empty(); } + stores.erase(meta.storeId); auto *dbStore = creators_[meta.storeType](meta); if (dbStore == nullptr) { ZLOGE("creator failed. storeName:%{public}s", meta.GetStoreAlias().c_str()); return !stores.empty(); } dbStore->SetExecutor(executor_); - auto result = stores.emplace(std::piecewise_construct, std::forward_as_tuple(storeKey), + auto result = stores.emplace(std::piecewise_construct, std::forward_as_tuple(meta.storeId), std::forward_as_tuple(dbStore, watchers, atoi(meta.user.c_str()), meta)); store = result.first->second; StartTimer(); @@ -126,19 +116,17 @@ AutoCache::Store AutoCache::GetStore(const StoreMetaData &meta, const Watchers & return GetDBStore(meta, watchers).second; } -AutoCache::Stores AutoCache::GetStoresIfPresent(uint32_t tokenId, const std::string &storeName, - const std::string &userId) +AutoCache::Stores AutoCache::GetStoresIfPresent(uint32_t tokenId, const std::string &storeName) { Stores stores; - auto storeKey = GenerateKey(userId, storeName); stores_.ComputeIfPresent( - tokenId, [&stores, &storeKey](auto &, std::map &delegates) -> bool { - if (storeKey.empty()) { + tokenId, [&stores, &storeName](auto &, std::map &delegates) -> bool { + if (storeName.empty()) { for (auto &[_, delegate] : delegates) { stores.push_back(delegate); } } else { - auto it = delegates.find(storeKey); + auto it = delegates.find(storeName); if (it != delegates.end()) { stores.push_back(it->second); } @@ -170,18 +158,17 @@ void AutoCache::StartTimer() ZLOGD("start timer,taskId: %{public}" PRIu64, taskId_); } -void AutoCache::CloseStore(uint32_t tokenId, const std::string &storeId, const std::string &userId) +void AutoCache::CloseStore(uint32_t tokenId, const std::string &storeId) { ZLOGD("close store start, store:%{public}s, token:%{public}u", Anonymous::Change(storeId).c_str(), tokenId); std::set storeIds; std::list closeStores; bool isScreenLocked = ScreenManager::GetInstance()->IsLocked(); - auto storeKey = GenerateKey(userId, storeId); stores_.ComputeIfPresent(tokenId, - [this, &storeKey, isScreenLocked, &storeIds, &closeStores](auto &, auto &delegates) { + [this, &storeId, isScreenLocked, &storeIds, &closeStores](auto &key, auto &delegates) { auto it = delegates.begin(); while (it != delegates.end()) { - if ((it->first == storeKey || storeKey.empty()) && + if ((storeId == it->first || storeId.empty()) && (!isScreenLocked || it->second.GetArea() != GeneralStore::EL4) && disableStores_.count(it->second.GetDataDir()) == 0) { disableStores_.insert(it->second.GetDataDir()); @@ -241,14 +228,12 @@ void AutoCache::CloseStore(const AutoCache::Filter &filter) }); } -void AutoCache::SetObserver(uint32_t tokenId, const std::string &storeId, const AutoCache::Watchers &watchers, - const std::string &userId) +void AutoCache::SetObserver(uint32_t tokenId, const std::string &storeId, const AutoCache::Watchers &watchers) { - auto storeKey = GenerateKey(userId, storeId); - stores_.ComputeIfPresent(tokenId, [&storeKey, &watchers](auto &key, auto &stores) { + stores_.ComputeIfPresent(tokenId, [&storeId, &watchers](auto &key, auto &stores) { ZLOGD("tokenId:0x%{public}x storeId:%{public}s observers:%{public}zu", key, - Anonymous::Change(storeKey).c_str(), watchers.size()); - auto it = stores.find(storeKey); + Anonymous::Change(storeId).c_str(), watchers.size()); + auto it = stores.find(storeId); if (it != stores.end()) { it->second.SetObservers(watchers); } @@ -274,23 +259,21 @@ void AutoCache::GarbageCollect(bool isForce) }); } -void AutoCache::Enable(uint32_t tokenId, const std::string &storeId, const std::string &userId) +void AutoCache::Enable(uint32_t tokenId, const std::string &storeId) { - auto storeKey = GenerateKey(userId, storeId); - disables_.ComputeIfPresent(tokenId, [&storeKey](auto key, std::set &stores) { - stores.erase(storeKey); - return !(stores.empty() || storeKey.empty()); + disables_.ComputeIfPresent(tokenId, [&storeId](auto key, std::set &stores) { + stores.erase(storeId); + return !(stores.empty() || storeId.empty()); }); } -void AutoCache::Disable(uint32_t tokenId, const std::string &storeId, const std::string &userId) +void AutoCache::Disable(uint32_t tokenId, const std::string &storeId) { - auto storeKey = GenerateKey(userId, storeId); - disables_.Compute(tokenId, [&storeKey](auto key, std::set &stores) { - stores.insert(storeKey); + disables_.Compute(tokenId, [&storeId](auto key, std::set &stores) { + stores.insert(storeId); return !stores.empty(); }); - CloseStore(tokenId, storeId, userId); + CloseStore(tokenId, storeId); } AutoCache::Delegate::Delegate(GeneralStore *delegate, const Watchers &watchers, int32_t user, const StoreMetaData &meta) diff --git a/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp b/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp index f04980ccc167301f48916a6a907e72f745330e5e..4629e972bdd655d3c2b46e40300d3fd6fcc4fcd3 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp +++ b/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp @@ -203,7 +203,7 @@ Status KVDBServiceImpl::Delete(const AppId &appId, const StoreId &storeId, int32 MetaDataManager::GetInstance().DelMeta(metaData.GetDebugInfoKey(), true); MetaDataManager::GetInstance().DelMeta(metaData.GetCloneSecretKey(), true); PermitDelegate::GetInstance().DelCache(metaData.GetKey()); - AutoCache::GetInstance().CloseStore(metaData.tokenId, storeId, metaData.user); + AutoCache::GetInstance().CloseStore(metaData.tokenId, storeId); ZLOGD("appId:%{public}s storeId:%{public}s instanceId:%{public}d", appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str(), metaData.instanceId); return SUCCESS; @@ -215,7 +215,7 @@ Status KVDBServiceImpl::Close(const AppId &appId, const StoreId &storeId, int32_ if (metaData.instanceId < 0) { return ILLEGAL_STATE; } - AutoCache::GetInstance().CloseStore(metaData.tokenId, storeId, metaData.user); + AutoCache::GetInstance().CloseStore(metaData.tokenId, storeId); ZLOGD("appId:%{public}s storeId:%{public}s instanceId:%{public}d", appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str(), metaData.instanceId); return SUCCESS; @@ -245,7 +245,7 @@ Status KVDBServiceImpl::Sync(const AppId &appId, const StoreId &storeId, int32_t { StoreMetaData metaData = GetStoreMetaData(appId, storeId, subUser); MetaDataManager::GetInstance().LoadMeta(metaData.GetKey(), metaData); - auto delay = GetSyncDelayTime(syncInfo.delay, storeId, metaData.user); + auto delay = GetSyncDelayTime(syncInfo.delay, storeId); if (metaData.isAutoSync && syncInfo.seqId == std::numeric_limits::max()) { DeviceMatrix::GetInstance().OnChanged(metaData); StoreMetaDataLocal localMeta; @@ -442,8 +442,7 @@ ProgressDetail KVDBServiceImpl::HandleGenDetails(const GenDetails &details) return progressDetail; } -Status KVDBServiceImpl::SetSyncParam(const AppId &appId, const StoreId &storeId, int32_t subUser, - const KvSyncParam &syncParam) +Status KVDBServiceImpl::SetSyncParam(const AppId &appId, const StoreId &storeId, const KvSyncParam &syncParam) { if (syncParam.allowedDelayMs > 0 && syncParam.allowedDelayMs < KvStoreSyncManager::SYNC_MIN_DELAY_MS) { return Status::INVALID_ARGUMENT; @@ -451,32 +450,29 @@ Status KVDBServiceImpl::SetSyncParam(const AppId &appId, const StoreId &storeId, if (syncParam.allowedDelayMs > KvStoreSyncManager::SYNC_MAX_DELAY_MS) { return Status::INVALID_ARGUMENT; } - StoreMetaData meta = GetStoreMetaData(appId, storeId, subUser); - auto key = GenerateKey(meta.user, storeId.storeId); - syncAgents_.Compute(meta.tokenId, [&appId, &key, &syncParam](auto &, SyncAgent &value) { + auto tokenId = IPCSkeleton::GetCallingTokenID(); + syncAgents_.Compute(tokenId, [&appId, &storeId, &syncParam](auto &key, SyncAgent &value) { if (value.pid_ != IPCSkeleton::GetCallingPid()) { value.ReInit(IPCSkeleton::GetCallingPid(), appId); } - value.delayTimes_[key] = syncParam.allowedDelayMs; + value.delayTimes_[storeId] = syncParam.allowedDelayMs; return true; }); return SUCCESS; } -Status KVDBServiceImpl::GetSyncParam(const AppId &appId, const StoreId &storeId, int32_t subUser, - KvSyncParam &syncParam) +Status KVDBServiceImpl::GetSyncParam(const AppId &appId, const StoreId &storeId, KvSyncParam &syncParam) { syncParam.allowedDelayMs = 0; - StoreMetaData meta = GetStoreMetaData(appId, storeId, subUser); - auto key = GenerateKey(meta.user, storeId.storeId); - syncAgents_.ComputeIfPresent(meta.tokenId, [&appId, &key, &syncParam](auto &, SyncAgent &value) { + auto tokenId = IPCSkeleton::GetCallingTokenID(); + syncAgents_.ComputeIfPresent(tokenId, [&appId, &storeId, &syncParam](auto &key, SyncAgent &value) { if (value.pid_ != IPCSkeleton::GetCallingPid()) { ZLOGW("agent already changed! old pid:%{public}d, new pid:%{public}d, appId:%{public}s", IPCSkeleton::GetCallingPid(), value.pid_, appId.appId.c_str()); return true; } - auto it = value.delayTimes_.find(key); + auto it = value.delayTimes_.find(storeId); if (it != value.delayTimes_.end()) { syncParam.allowedDelayMs = it->second; } @@ -485,9 +481,9 @@ Status KVDBServiceImpl::GetSyncParam(const AppId &appId, const StoreId &storeId, return SUCCESS; } -Status KVDBServiceImpl::EnableCapability(const AppId &appId, const StoreId &storeId, int32_t subUser) +Status KVDBServiceImpl::EnableCapability(const AppId &appId, const StoreId &storeId) { - StrategyMeta strategyMeta = GetStrategyMeta(appId, storeId, subUser); + StrategyMeta strategyMeta = GetStrategyMeta(appId, storeId); if (strategyMeta.instanceId < 0) { return ILLEGAL_STATE; } @@ -497,9 +493,9 @@ Status KVDBServiceImpl::EnableCapability(const AppId &appId, const StoreId &stor return SUCCESS; } -Status KVDBServiceImpl::DisableCapability(const AppId &appId, const StoreId &storeId, int32_t subUser) +Status KVDBServiceImpl::DisableCapability(const AppId &appId, const StoreId &storeId) { - StrategyMeta strategyMeta = GetStrategyMeta(appId, storeId, subUser); + StrategyMeta strategyMeta = GetStrategyMeta(appId, storeId); if (strategyMeta.instanceId < 0) { return ILLEGAL_STATE; } @@ -509,10 +505,10 @@ Status KVDBServiceImpl::DisableCapability(const AppId &appId, const StoreId &sto return SUCCESS; } -Status KVDBServiceImpl::SetCapability(const AppId &appId, const StoreId &storeId, int32_t subUser, +Status KVDBServiceImpl::SetCapability(const AppId &appId, const StoreId &storeId, const std::vector &local, const std::vector &remote) { - StrategyMeta strategy = GetStrategyMeta(appId, storeId, subUser); + StrategyMeta strategy = GetStrategyMeta(appId, storeId); if (strategy.instanceId < 0) { return ILLEGAL_STATE; } @@ -523,23 +519,21 @@ Status KVDBServiceImpl::SetCapability(const AppId &appId, const StoreId &storeId return SUCCESS; } -Status KVDBServiceImpl::AddSubscribeInfo(const AppId &appId, const StoreId &storeId, int32_t subUser, - const SyncInfo &syncInfo) +Status KVDBServiceImpl::AddSubscribeInfo(const AppId &appId, const StoreId &storeId, const SyncInfo &syncInfo) { - StoreMetaData metaData = GetStoreMetaData(appId, storeId, subUser); + StoreMetaData metaData = GetStoreMetaData(appId, storeId); MetaDataManager::GetInstance().LoadMeta(metaData.GetKey(), metaData); - auto delay = GetSyncDelayTime(syncInfo.delay, storeId, metaData.user); + auto delay = GetSyncDelayTime(syncInfo.delay, storeId); return KvStoreSyncManager::GetInstance()->AddSyncOperation(uintptr_t(metaData.tokenId), delay, std::bind(&KVDBServiceImpl::DoSyncInOrder, this, metaData, syncInfo, std::placeholders::_1, ACTION_SUBSCRIBE), std::bind(&KVDBServiceImpl::DoComplete, this, metaData, syncInfo, RefCount(), std::placeholders::_1)); } -Status KVDBServiceImpl::RmvSubscribeInfo(const AppId &appId, const StoreId &storeId, int32_t subUser, - const SyncInfo &syncInfo) +Status KVDBServiceImpl::RmvSubscribeInfo(const AppId &appId, const StoreId &storeId, const SyncInfo &syncInfo) { - StoreMetaData metaData = GetStoreMetaData(appId, storeId, subUser); + StoreMetaData metaData = GetStoreMetaData(appId, storeId); MetaDataManager::GetInstance().LoadMeta(metaData.GetKey(), metaData); - auto delay = GetSyncDelayTime(syncInfo.delay, storeId, metaData.user); + auto delay = GetSyncDelayTime(syncInfo.delay, storeId); return KvStoreSyncManager::GetInstance()->AddSyncOperation(uintptr_t(metaData.tokenId), delay, std::bind( &KVDBServiceImpl::DoSyncInOrder, this, metaData, syncInfo, std::placeholders::_1, ACTION_UNSUBSCRIBE), @@ -569,7 +563,7 @@ Status KVDBServiceImpl::Subscribe(const AppId &appId, const StoreId &storeId, in }); if (isCreate) { AutoCache::GetInstance().SetObserver(metaData.tokenId, storeId, - GetWatchers(metaData.tokenId, storeId, metaData.user), metaData.user); + GetWatchers(metaData.tokenId, storeId, metaData.user)); } return SUCCESS; } @@ -601,15 +595,15 @@ Status KVDBServiceImpl::Unsubscribe(const AppId &appId, const StoreId &storeId, }); if (destroyed) { AutoCache::GetInstance().SetObserver(metaData.tokenId, storeId, - GetWatchers(metaData.tokenId, storeId, metaData.user), metaData.user); + GetWatchers(metaData.tokenId, storeId, metaData.user)); } return SUCCESS; } -Status KVDBServiceImpl::GetBackupPassword(const AppId &appId, const StoreId &storeId, int32_t subUser, +Status KVDBServiceImpl::GetBackupPassword(const AppId &appId, const StoreId &storeId, std::vector> &passwords, int32_t passwordType) { - StoreMetaData metaData = GetStoreMetaData(appId, storeId, subUser); + StoreMetaData metaData = GetStoreMetaData(appId, storeId); if (passwordType == KVDBService::PasswordType::BACKUP_SECRET_KEY) { std::vector backupPwd; bool res = BackupManager::GetInstance().GetPassWord(metaData, backupPwd); @@ -662,7 +656,7 @@ Status KVDBServiceImpl::SetConfig(const AppId &appId, const StoreId &storeId, co return Status::ERROR; } } - auto stores = AutoCache::GetInstance().GetStoresIfPresent(meta.tokenId, storeId, meta.user); + auto stores = AutoCache::GetInstance().GetStoresIfPresent(meta.tokenId, storeId); for (auto store : stores) { store->SetConfig({ storeConfig.cloudConfig.enableCloud }); } @@ -931,11 +925,10 @@ StoreMetaData KVDBServiceImpl::GetStoreMetaData(const AppId &appId, const StoreI return metaData; } -StrategyMeta KVDBServiceImpl::GetStrategyMeta(const AppId &appId, const StoreId &storeId, int32_t subUser) +StrategyMeta KVDBServiceImpl::GetStrategyMeta(const AppId &appId, const StoreId &storeId) { auto tokenId = IPCSkeleton::GetCallingTokenID(); - auto userId = (AccessTokenKit::GetTokenTypeFlag(tokenId) != TOKEN_HAP && subUser != 0) ? subUser : - AccountDelegate::GetInstance()->GetUserByToken(tokenId); + auto userId = AccountDelegate::GetInstance()->GetUserByToken(tokenId); auto deviceId = DMAdapter::GetInstance().GetLocalDevice().uuid; StrategyMeta strategyMeta(deviceId, std::to_string(userId), appId.appId, storeId.storeId); strategyMeta.instanceId = GetInstIndex(tokenId, appId); @@ -1244,7 +1237,7 @@ Status KVDBServiceImpl::ConvertDbStatusNative(DBStatus status) } } -uint32_t KVDBServiceImpl::GetSyncDelayTime(uint32_t delay, const StoreId &storeId, const std::string &subUser) +uint32_t KVDBServiceImpl::GetSyncDelayTime(uint32_t delay, const StoreId &storeId) { if (delay != 0) { return std::min(std::max(delay, KvStoreSyncManager::SYNC_MIN_DELAY_MS), KvStoreSyncManager::SYNC_MAX_DELAY_MS); @@ -1255,9 +1248,8 @@ uint32_t KVDBServiceImpl::GetSyncDelayTime(uint32_t delay, const StoreId &storeI return delay; } delay = KvStoreSyncManager::SYNC_DEFAULT_DELAY_MS; - auto key = GenerateKey(subUser, storeId); - syncAgents_.ComputeIfPresent(IPCSkeleton::GetCallingTokenID(), [&delay, &key](auto &, SyncAgent &agent) { - auto it = agent.delayTimes_.find(key); + syncAgents_.ComputeIfPresent(IPCSkeleton::GetCallingTokenID(), [&delay, &storeId](auto &, SyncAgent &agent) { + auto it = agent.delayTimes_.find(storeId); if (it != agent.delayTimes_.end() && it->second != 0) { delay = it->second; } diff --git a/services/distributeddataservice/service/kvdb/kvdb_service_impl.h b/services/distributeddataservice/service/kvdb/kvdb_service_impl.h index 4604f8b56eac50623014bd56fe84f06167797057..bbeddfc616f0d5fc2131aa2ab43115c4262f1978 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_service_impl.h +++ b/services/distributeddataservice/service/kvdb/kvdb_service_impl.h @@ -52,23 +52,20 @@ public: Status Sync(const AppId &appId, const StoreId &storeId, int32_t subUser, SyncInfo &syncInfo) override; Status RegServiceNotifier(const AppId &appId, sptr notifier) override; Status UnregServiceNotifier(const AppId &appId) override; - Status SetSyncParam(const AppId &appId, const StoreId &storeId, int32_t subUser, - const KvSyncParam &syncParam) override; - Status GetSyncParam(const AppId &appId, const StoreId &storeId, int32_t subUser, KvSyncParam &syncParam) override; - Status EnableCapability(const AppId &appId, const StoreId &storeId, int32_t subUser) override; - Status DisableCapability(const AppId &appId, const StoreId &storeId, int32_t subUser) override; - Status SetCapability(const AppId &appId, const StoreId &storeId, int32_t subUser, - const std::vector &local, const std::vector &remote) override; - Status AddSubscribeInfo(const AppId &appId, const StoreId &storeId, int32_t subUser, - const SyncInfo &syncInfo) override; - Status RmvSubscribeInfo(const AppId &appId, const StoreId &storeId, int32_t subUser, - const SyncInfo &syncInfo) override; + Status SetSyncParam(const AppId &appId, const StoreId &storeId, const KvSyncParam &syncParam) override; + Status GetSyncParam(const AppId &appId, const StoreId &storeId, KvSyncParam &syncParam) override; + Status EnableCapability(const AppId &appId, const StoreId &storeId) override; + Status DisableCapability(const AppId &appId, const StoreId &storeId) override; + Status SetCapability(const AppId &appId, const StoreId &storeId, const std::vector &local, + const std::vector &remote) override; + Status AddSubscribeInfo(const AppId &appId, const StoreId &storeId, const SyncInfo &syncInfo) override; + Status RmvSubscribeInfo(const AppId &appId, const StoreId &storeId, const SyncInfo &syncInfo) override; Status Subscribe(const AppId &appId, const StoreId &storeId, int32_t subUser, sptr observer) override; Status Unsubscribe(const AppId &appId, const StoreId &storeId, int32_t subUser, sptr observer) override; - Status GetBackupPassword(const AppId &appId, const StoreId &storeId, int32_t subUser, - std::vector> &passwords, int32_t passwordType) override; + Status GetBackupPassword(const AppId &appId, const StoreId &storeId, std::vector> &passwords, + int32_t passwordType) override; Status NotifyDataChange(const AppId &appId, const StoreId &storeId, uint64_t delay) override; Status PutSwitch(const AppId &appId, const SwitchData &data) override; Status GetSwitch(const AppId &appId, const std::string &networkId, SwitchData &data) override; @@ -124,7 +121,7 @@ private: void AddOptions(const Options &options, StoreMetaData &metaData); StoreMetaData GetStoreMetaData(const AppId &appId, const StoreId &storeId, int32_t subUser = 0); StoreMetaData GetDistributedDataMeta(const std::string &deviceId); - StrategyMeta GetStrategyMeta(const AppId &appId, const StoreId &storeId, int32_t subUser = 0); + StrategyMeta GetStrategyMeta(const AppId &appId, const StoreId &storeId); int32_t GetInstIndex(uint32_t tokenId, const AppId &appId); bool IsNeedMetaSync(const StoreMetaData &meta, const std::vector &uuids); Status DoCloudSync(const StoreMetaData &meta, const SyncInfo &syncInfo); @@ -134,7 +131,7 @@ private: Status DoSyncBegin(const std::vector &devices, const StoreMetaData &meta, const SyncInfo &info, const SyncEnd &complete, int32_t type); Status DoComplete(const StoreMetaData &meta, const SyncInfo &info, RefCount refCount, const DBResult &dbResult); - uint32_t GetSyncDelayTime(uint32_t delay, const StoreId &storeId, const std::string &subUser = ""); + uint32_t GetSyncDelayTime(uint32_t delay, const StoreId &storeId); Status ConvertDbStatus(DBStatus status) const; Status ConvertGeneralErr(GeneralError error) const; DBMode ConvertDBMode(SyncMode syncMode) const; diff --git a/services/distributeddataservice/service/kvdb/kvdb_service_stub.cpp b/services/distributeddataservice/service/kvdb/kvdb_service_stub.cpp index 37de89063cb67c628b7921dd146a531a5b2df219..e3cbb742385c149f1f18df723bdf6c7e93245b34 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_service_stub.cpp +++ b/services/distributeddataservice/service/kvdb/kvdb_service_stub.cpp @@ -294,13 +294,12 @@ int32_t KVDBServiceStub::OnSetSyncParam( const AppId &appId, const StoreId &storeId, MessageParcel &data, MessageParcel &reply) { KvSyncParam syncParam; - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, syncParam.allowedDelayMs, subUser)) { + if (!ITypesUtil::Unmarshal(data, syncParam.allowedDelayMs)) { ZLOGE("Unmarshal appId:%{public}s storeId:%{public}s", appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); return IPC_STUB_INVALID_DATA_ERR; } - int32_t status = SetSyncParam(appId, storeId, subUser, syncParam); + int32_t status = SetSyncParam(appId, storeId, syncParam); if (!ITypesUtil::Marshal(reply, status)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); @@ -312,14 +311,8 @@ int32_t KVDBServiceStub::OnSetSyncParam( int32_t KVDBServiceStub::OnGetSyncParam( const AppId &appId, const StoreId &storeId, MessageParcel &data, MessageParcel &reply) { - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, subUser)) { - ZLOGE("Unmarshal appId:%{public}s storeId:%{public}s", appId.appId.c_str(), - Anonymous::Change(storeId.storeId).c_str()); - return IPC_STUB_INVALID_DATA_ERR; - } KvSyncParam syncParam; - int32_t status = GetSyncParam(appId, storeId, subUser, syncParam); + int32_t status = GetSyncParam(appId, storeId, syncParam); if (!ITypesUtil::Marshal(reply, status, syncParam.allowedDelayMs)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); @@ -331,13 +324,7 @@ int32_t KVDBServiceStub::OnGetSyncParam( int32_t KVDBServiceStub::OnEnableCap( const AppId &appId, const StoreId &storeId, MessageParcel &data, MessageParcel &reply) { - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, subUser)) { - ZLOGE("Unmarshal appId:%{public}s storeId:%{public}s", appId.appId.c_str(), - Anonymous::Change(storeId.storeId).c_str()); - return IPC_STUB_INVALID_DATA_ERR; - } - int32_t status = EnableCapability(appId, storeId, subUser); + int32_t status = EnableCapability(appId, storeId); if (!ITypesUtil::Marshal(reply, status)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); @@ -349,13 +336,7 @@ int32_t KVDBServiceStub::OnEnableCap( int32_t KVDBServiceStub::OnDisableCap( const AppId &appId, const StoreId &storeId, MessageParcel &data, MessageParcel &reply) { - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, subUser)) { - ZLOGE("Unmarshal appId:%{public}s storeId:%{public}s", appId.appId.c_str(), - Anonymous::Change(storeId.storeId).c_str()); - return IPC_STUB_INVALID_DATA_ERR; - } - int32_t status = DisableCapability(appId, storeId, subUser); + int32_t status = DisableCapability(appId, storeId); if (!ITypesUtil::Marshal(reply, status)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); @@ -369,13 +350,12 @@ int32_t KVDBServiceStub::OnSetCapability( { std::vector local; std::vector remote; - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, local, remote, subUser)) { + if (!ITypesUtil::Unmarshal(data, local, remote)) { ZLOGE("Unmarshal appId:%{public}s storeId:%{public}s", appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); return IPC_STUB_INVALID_DATA_ERR; } - int32_t status = SetCapability(appId, storeId, subUser, local, remote); + int32_t status = SetCapability(appId, storeId, local, remote); if (!ITypesUtil::Marshal(reply, status)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); @@ -388,13 +368,12 @@ int32_t KVDBServiceStub::OnAddSubInfo(const AppId &appId, const StoreId &storeId MessageParcel &reply) { SyncInfo syncInfo; - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, syncInfo.seqId, syncInfo.devices, syncInfo.query, subUser)) { + if (!ITypesUtil::Unmarshal(data, syncInfo.seqId, syncInfo.devices, syncInfo.query)) { ZLOGE("Unmarshal appId:%{public}s storeId:%{public}s", appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); return IPC_STUB_INVALID_DATA_ERR; } - int32_t status = AddSubscribeInfo(appId, storeId, subUser, syncInfo); + int32_t status = AddSubscribeInfo(appId, storeId, syncInfo); if (!ITypesUtil::Marshal(reply, status)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); @@ -407,13 +386,12 @@ int32_t KVDBServiceStub::OnRmvSubInfo(const AppId &appId, const StoreId &storeId MessageParcel &reply) { SyncInfo syncInfo; - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, syncInfo.seqId, syncInfo.devices, syncInfo.query, subUser)) { + if (!ITypesUtil::Unmarshal(data, syncInfo.seqId, syncInfo.devices, syncInfo.query)) { ZLOGE("Unmarshal appId:%{public}s storeId:%{public}s", appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); return IPC_STUB_INVALID_DATA_ERR; } - int32_t status = RmvSubscribeInfo(appId, storeId, subUser, syncInfo); + int32_t status = RmvSubscribeInfo(appId, storeId, syncInfo); if (!ITypesUtil::Marshal(reply, status)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); @@ -466,14 +444,13 @@ int32_t KVDBServiceStub::OnGetBackupPassword( const AppId &appId, const StoreId &storeId, MessageParcel &data, MessageParcel &reply) { int32_t passwordType; - int32_t subUser; - if (!ITypesUtil::Unmarshal(data, passwordType, subUser)) { + if (!ITypesUtil::Unmarshal(data, passwordType)) { ZLOGE("Unmarshal type failed, appId:%{public}s storeId:%{public}s", appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); return IPC_STUB_INVALID_DATA_ERR; } std::vector> passwords; - int32_t status = GetBackupPassword(appId, storeId, subUser, passwords, passwordType); + int32_t status = GetBackupPassword(appId, storeId, passwords, passwordType); if (!ITypesUtil::Marshal(reply, status, passwords)) { ZLOGE("Marshal status:0x%{public}x appId:%{public}s storeId:%{public}s", status, appId.appId.c_str(), Anonymous::Change(storeId.storeId).c_str()); diff --git a/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp b/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp index ba28f19a5afbd43ae321c13f819798c105a2734f..7e5e73242f56fb63328edcbd81a6c3ec06a445bc 100644 --- a/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp +++ b/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp @@ -498,10 +498,10 @@ HWTEST_F(KvdbServiceImplTest, SetSyncParamTest001, TestSize.Level0) ASSERT_NE(kvStore, nullptr); ASSERT_EQ(status1, Status::SUCCESS); OHOS::DistributedKv::KvSyncParam syncparam; - auto status = kvdbServiceImpl_->SetSyncParam(appId, storeId, 0, syncparam); + auto status = kvdbServiceImpl_->SetSyncParam(appId, storeId, syncparam); ASSERT_EQ(status, Status::SUCCESS); syncparam.allowedDelayMs = DistributedKv::KvStoreSyncManager::SYNC_MAX_DELAY_MS + 1; - status = kvdbServiceImpl_->SetSyncParam(appId, storeId, 0, syncparam); + status = kvdbServiceImpl_->SetSyncParam(appId, storeId, syncparam); ASSERT_EQ(status, Status::INVALID_ARGUMENT); } @@ -518,7 +518,7 @@ HWTEST_F(KvdbServiceImplTest, GetSyncParamTest001, TestSize.Level0) ASSERT_NE(kvStore, nullptr); ASSERT_EQ(status1, Status::SUCCESS); OHOS::DistributedKv::KvSyncParam syncparam; - auto status = kvdbServiceImpl_->GetSyncParam(appId, storeId, 0, syncparam); + auto status = kvdbServiceImpl_->GetSyncParam(appId, storeId, syncparam); ZLOGI("GetSyncParamTest001 status = :%{public}d", status); ASSERT_EQ(status, Status::SUCCESS); } @@ -536,11 +536,11 @@ HWTEST_F(KvdbServiceImplTest, EnableCapabilityTest001, TestSize.Level0) ASSERT_EQ(status1, Status::SUCCESS); EXPECT_CALL(*accTokenMock, GetTokenTypeFlag(testing::_)).WillOnce(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)) .WillRepeatedly(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)); - auto status = kvdbServiceImpl_->EnableCapability(appId, storeId, 0); + auto status = kvdbServiceImpl_->EnableCapability(appId, storeId); ASSERT_EQ(status, Status::SUCCESS); EXPECT_CALL(*accTokenMock, GetTokenTypeFlag(testing::_)).WillOnce(testing::Return(ATokenTypeEnum::TOKEN_HAP)) .WillRepeatedly(testing::Return(ATokenTypeEnum::TOKEN_HAP)); - status = kvdbServiceImpl_->EnableCapability(appId, storeId, 0); + status = kvdbServiceImpl_->EnableCapability(appId, storeId); ASSERT_EQ(status, Status::ILLEGAL_STATE); } @@ -753,12 +753,12 @@ HWTEST_F(KvdbServiceImplTest, DisableCapabilityTest001, TestSize.Level0) ASSERT_EQ(status1, Status::SUCCESS); EXPECT_CALL(*accTokenMock, GetTokenTypeFlag(testing::_)).WillOnce(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)) .WillRepeatedly(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)); - auto status = kvdbServiceImpl_->DisableCapability(appId, storeId, 0); + auto status = kvdbServiceImpl_->DisableCapability(appId, storeId); ZLOGI("DisableCapabilityTest001 status = :%{public}d", status); ASSERT_EQ(status, Status::SUCCESS); EXPECT_CALL(*accTokenMock, GetTokenTypeFlag(testing::_)).WillOnce(testing::Return(ATokenTypeEnum::TOKEN_HAP)) .WillRepeatedly(testing::Return(ATokenTypeEnum::TOKEN_HAP)); - status = kvdbServiceImpl_->EnableCapability(appId, storeId, 0); + status = kvdbServiceImpl_->EnableCapability(appId, storeId); ASSERT_EQ(status, Status::ILLEGAL_STATE); } @@ -778,12 +778,12 @@ HWTEST_F(KvdbServiceImplTest, SetCapabilityTest001, TestSize.Level0) std::vector remote; EXPECT_CALL(*accTokenMock, GetTokenTypeFlag(testing::_)).WillOnce(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)) .WillRepeatedly(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)); - auto status = kvdbServiceImpl_->SetCapability(appId, storeId, 0, local, remote); + auto status = kvdbServiceImpl_->SetCapability(appId, storeId, local, remote); ZLOGI("SetCapabilityTest001 status = :%{public}d", status); ASSERT_EQ(status, Status::SUCCESS); EXPECT_CALL(*accTokenMock, GetTokenTypeFlag(testing::_)).WillOnce(testing::Return(ATokenTypeEnum::TOKEN_HAP)) .WillRepeatedly(testing::Return(ATokenTypeEnum::TOKEN_HAP)); - status = kvdbServiceImpl_->EnableCapability(appId, storeId, 0); + status = kvdbServiceImpl_->EnableCapability(appId, storeId); ASSERT_EQ(status, Status::ILLEGAL_STATE); } @@ -803,7 +803,7 @@ HWTEST_F(KvdbServiceImplTest, AddSubscribeInfoTest001, TestSize.Level0) EXPECT_CALL(*accTokenMock, GetTokenTypeFlag(testing::_)) .WillOnce(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)) .WillRepeatedly(testing::Return(ATokenTypeEnum::TOKEN_NATIVE)); - auto status = kvdbServiceImpl_->AddSubscribeInfo(appId, storeId, 0, syncInfo); + auto status = kvdbServiceImpl_->AddSubscribeInfo(appId, storeId, syncInfo); ZLOGI("AddSubscribeInfoTest001 status = :%{public}d", status); ASSERT_NE(status, Status::SUCCESS); } @@ -821,7 +821,7 @@ HWTEST_F(KvdbServiceImplTest, RmvSubscribeInfoTest001, TestSize.Level0) ASSERT_NE(kvStore, nullptr); ASSERT_EQ(status1, Status::SUCCESS); SyncInfo syncInfo; - auto status = kvdbServiceImpl_->RmvSubscribeInfo(appId, storeId, 0, syncInfo); + auto status = kvdbServiceImpl_->RmvSubscribeInfo(appId, storeId, syncInfo); ZLOGI("RmvSubscribeInfoTest001 status = :%{public}d", status); ASSERT_NE(status, Status::SUCCESS); } @@ -883,13 +883,13 @@ HWTEST_F(KvdbServiceImplTest, GetBackupPasswordTest001, TestSize.Level0) ASSERT_EQ(status, Status::SUCCESS); std::vector> password; status = kvdbServiceImpl_->GetBackupPassword - (appId, storeId, 0, password, DistributedKv::KVDBService::PasswordType::BACKUP_SECRET_KEY); + (appId, storeId, password, DistributedKv::KVDBService::PasswordType::BACKUP_SECRET_KEY); ASSERT_EQ(status, Status::ERROR); status = kvdbServiceImpl_->GetBackupPassword - (appId, storeId, 0, password, DistributedKv::KVDBService::PasswordType::SECRET_KEY); + (appId, storeId, password, DistributedKv::KVDBService::PasswordType::SECRET_KEY); ASSERT_EQ(status, Status::ERROR); status = kvdbServiceImpl_->GetBackupPassword - (appId, storeId, 0, password, DistributedKv::KVDBService::PasswordType::BUTTON); + (appId, storeId, password, DistributedKv::KVDBService::PasswordType::BUTTON); ASSERT_EQ(status, Status::ERROR); }