mirror of
https://github.com/openharmony/distributed_hardware_fwk.git
synced 2026-07-21 00:55:24 -04:00
add add unregister plugin listener
Signed-off-by: dl <dengliang21@huawei.com>
This commit is contained in:
@@ -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 {
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+10
-3
@@ -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
|
||||
Reference in New Issue
Block a user