diff --git a/services/distributedhardwarefwkservice/src/distributed_hardware_manager.cpp b/services/distributedhardwarefwkservice/src/distributed_hardware_manager.cpp index ff4cbc922a49dfd1b35440b104c07a1e9b1983ec..997416785c45e712288ee049c70fb1d36b536a1d 100644 --- a/services/distributedhardwarefwkservice/src/distributed_hardware_manager.cpp +++ b/services/distributedhardwarefwkservice/src/distributed_hardware_manager.cpp @@ -54,18 +54,18 @@ IMPLEMENT_SINGLE_INSTANCE(DistributedHardwareManager); int32_t DistributedHardwareManager::Initialize() { DHLOGI("start"); - CapabilityInfoManager::GetInstance()->Init(); - VersionInfoManager::GetInstance()->Init(); ComponentLoader::GetInstance().Init(); - LocalHardwareManager::GetInstance().Init(); - VersionManager::GetInstance().Init(); ComponentManager::GetInstance().Init(); + CapabilityInfoManager::GetInstance()->Init(); + + LocalHardwareManager::GetInstance().Init(); + return DH_FWK_SUCCESS; } @@ -74,18 +74,18 @@ int32_t DistributedHardwareManager::Release() DHLOGI("start"); TaskBoard::GetInstance().WaitForALLTaskFinish(); - ComponentManager::GetInstance().UnInit(); - - VersionManager::GetInstance().UnInit(); - - LocalHardwareManager::GetInstance().UnInit(); + VersionInfoManager::GetInstance()->UnInit(); ComponentLoader::GetInstance().UnInit(); - VersionInfoManager::GetInstance()->UnInit(); + VersionManager::GetInstance().UnInit(); + + ComponentManager::GetInstance().UnInit(); CapabilityInfoManager::GetInstance()->UnInit(); + LocalHardwareManager::GetInstance().UnInit(); + return DH_FWK_SUCCESS; } diff --git a/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp b/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp index 4d89d59262046de00fd7bc36305576bbd9c0f69a..6fd358d69b25d2cd47e6144eecb974153c568671 100644 --- a/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp +++ b/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp @@ -149,15 +149,20 @@ int32_t CapabilityInfoManager::AddCapability(const std::vector keys; std::vector values; + std::string data; for (auto &resInfo : resInfos) { if (!resInfo) { continue; } const std::string key = resInfo->GetKey(); + globalCapInfoMap_[key] = resInfo; + if (dbAdapterPtr_->GetDataByKey(key, data) == DH_FWK_SUCCESS && data.compare(resInfo->ToJsonString())) { + DHLOGD("this record is exist, Key: %s", resInfo->GetAnonymousKey().c_str()); + continue; + } DHLOGI("AddCapability, Key: %s", resInfo->GetAnonymousKey().c_str()); keys.push_back(key); values.push_back(resInfo->ToJsonString()); - globalCapInfoMap_[key] = resInfo; } if (dbAdapterPtr_->PutDataBatch(keys, values) != DH_FWK_SUCCESS) { DHLOGE("Fail to storage batch to kv"); diff --git a/services/distributedhardwarefwkservice/src/resourcemanager/db_adapter.cpp b/services/distributedhardwarefwkservice/src/resourcemanager/db_adapter.cpp index 534c2fe05fc16ee438c71cfaf6e3b5248fc77c02..6ad757666c1ae2fe8247e0b2a52ffacb8b34b80f 100644 --- a/services/distributedhardwarefwkservice/src/resourcemanager/db_adapter.cpp +++ b/services/distributedhardwarefwkservice/src/resourcemanager/db_adapter.cpp @@ -222,6 +222,10 @@ int32_t DBAdapter::PutDataBatch(const std::vector &keys, const std: DHLOGE("Param invalid"); return ERR_DH_FWK_PARA_INVALID; } + if (values.empty()) { + DHLOGE("values is empty!"); + return ERR_DH_FWK_PARA_INVALID; + } std::vector entries; for (unsigned long i = 0; i < keys.size(); i++) { DistributedKv::Entry entry;