add add unregister plugin listener

Signed-off-by: dl <dengliang21@huawei.com>
This commit is contained in:
dl
2022-04-06 17:40:59 +08:00
parent 716c8cf988
commit 47e7f8ef66
3 changed files with 15 additions and 8 deletions
+2 -2
View File
@@ -31,8 +31,8 @@ struct DHItem {
class PluginListener {
public:
virtual void PluginHardware(std::string dhId, std::string attrs) = 0;
virtual void UnPluginHardware(std::string dhId) = 0;
virtual void PluginHardware(const std::string &dhId, const std::string &attrs) = 0;
virtual void UnPluginHardware(const std::string &dhId) = 0;
};
class IHardwareHandler {
@@ -27,12 +27,12 @@ public:
explicit PluginListenerImpl(const DHType type) : dhType_(type) {}
virtual ~PluginListenerImpl() = default;
virtual void PluginHardware(std::string dhId, std::string attrs);
virtual void UnPluginHardware(std::string dhId);
virtual void PluginHardware(const std::string &dhId, const std::string &attrs) override;
virtual void UnPluginHardware(const std::string &dhId) override;
private:
DHType dhType_;
};
} // namespace DistributedHardware
} // namespace OHOS
#endif
#endif
@@ -17,13 +17,14 @@
#include "capability_info_manager.h"
#include "dh_context.h"
#include "distributed_hardware_errno.h"
namespace OHOS {
namespace DistributedHardware {
#undef DH_LOG_TAG
#define DH_LOG_TAG "PluginListenerImpl"
void PluginListenerImpl::PluginHardware(std::string dhId, std::string attrs)
void PluginListenerImpl::PluginHardware(const std::string &dhId, const std::string &attrs)
{
std::vector<std::shared_ptr<CapabilityInfo>> capabilityInfos;
std::string deviceId = DHContext::GetInstance().GetDeviceInfo().deviceId;
@@ -36,10 +37,16 @@ void PluginListenerImpl::PluginHardware(std::string dhId, std::string attrs)
CapabilityInfoManager::GetInstance()->AddCapability(capabilityInfos);
}
void PluginListenerImpl::UnPluginHardware(std::string dhId)
void PluginListenerImpl::UnPluginHardware(const std::string &dhId)
{
std::string deviceId = DHContext::GetInstance().GetDeviceInfo().deviceId;
CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoInMem(deviceId);
std::shared_ptr<CapabilityInfo> capability = nullptr;
auto ret = CapabilityInfoManager::GetInstance()->GetCapability(deviceId, dhId, capability);
if ((ret != DH_FWK_SUCCESS) || (capability == nullptr)) {
DHLOGE("GetCapability failed, deviceId =%s, dhId = %s, errCode = %d", deviceId.c_str(), dhId.c_str(), ret);
return;
}
CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(capability->GetKey());
}
} // namespace DistributedHardware
} // namespace OHOS