Loading system/gd/security/internal/security_manager_impl.cc +10 −8 Original line number Diff line number Diff line Loading @@ -100,20 +100,20 @@ void SecurityManagerImpl::RemoveBond(std::shared_ptr<hci::ClassicDevice> device) // Signal Remove from database } void SecurityManagerImpl::RegisterCallbackListener(ISecurityManagerListener* listener) { void SecurityManagerImpl::RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler) { if (listeners_.size() < 1) { listeners_.push_back(listener); listeners_.push_back({listener, handler}); } else { bool found = false; for (auto it = listeners_.begin(); it != listeners_.end(); ++it) { found = *it == listener; found = it->first == listener; if (found) break; } if (found) { LOG_ERROR("Listener has already been registered!"); } else { listeners_.push_back(listener); listeners_.push_back({listener, handler}); } } } Loading @@ -125,7 +125,7 @@ void SecurityManagerImpl::UnregisterCallbackListener(ISecurityManagerListener* l bool found = false; auto it = listeners_.begin(); while (it != listeners_.end()) { found = *it == listener; found = it->first == listener; if (found) break; ++it; } Loading @@ -137,18 +137,20 @@ void SecurityManagerImpl::UnregisterCallbackListener(ISecurityManagerListener* l void SecurityManagerImpl::FireDeviceBondedCallbacks(std::shared_ptr<Device> device) { for (auto& iter : listeners_) { iter->handler_->Post(common::Bind(&ISecurityManagerListener::OnDeviceBonded, common::Unretained(iter), device)); iter.second->Post(common::Bind(&ISecurityManagerListener::OnDeviceBonded, common::Unretained(iter.first), device)); } } void SecurityManagerImpl::FireBondFailedCallbacks(std::shared_ptr<Device> device) { for (auto& iter : listeners_) { iter->handler_->Post(common::Bind(&ISecurityManagerListener::OnDeviceBondFailed, common::Unretained(iter), device)); iter.second->Post( common::Bind(&ISecurityManagerListener::OnDeviceBondFailed, common::Unretained(iter.first), device)); } } void SecurityManagerImpl::FireUnbondCallbacks(std::shared_ptr<Device> device) { for (auto& iter : listeners_) { iter->handler_->Post(common::Bind(&ISecurityManagerListener::OnDeviceUnbonded, common::Unretained(iter), device)); iter.second->Post( common::Bind(&ISecurityManagerListener::OnDeviceUnbonded, common::Unretained(iter.first), device)); } } system/gd/security/internal/security_manager_impl.h +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include "os/handler.h" #include "security/channel/security_manager_channel.h" #include <utility> namespace bluetooth { namespace security { Loading Loading @@ -80,7 +82,7 @@ class SecurityManagerImpl /*: public channel::ISecurityManagerChannelListener*/ * * @param listener ISecurityManagerListener instance to handle callbacks */ void RegisterCallbackListener(ISecurityManagerListener* listener); void RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler); /** * Unregister listener for callback events from SecurityManager Loading @@ -90,7 +92,7 @@ class SecurityManagerImpl /*: public channel::ISecurityManagerChannelListener*/ void UnregisterCallbackListener(ISecurityManagerListener* listener); protected: std::vector<ISecurityManagerListener*> listeners_; std::vector<std::pair<ISecurityManagerListener*, os::Handler*>> listeners_; void FireDeviceBondedCallbacks(std::shared_ptr<bluetooth::hci::Device> device); void FireBondFailedCallbacks(std::shared_ptr<bluetooth::hci::Device> device); void FireUnbondCallbacks(std::shared_ptr<bluetooth::hci::Device> device); Loading system/gd/security/security_manager.cc +3 −5 Original line number Diff line number Diff line Loading @@ -47,14 +47,12 @@ void SecurityManager::RemoveBond(std::shared_ptr<hci::ClassicDevice> device) { std::forward<std::shared_ptr<hci::ClassicDevice>>(device))); } void SecurityManager::RegisterCallbackListener(ISecurityManagerListener* listener) { void SecurityManager::RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler) { security_handler_->Post(common::BindOnce(&internal::SecurityManagerImpl::RegisterCallbackListener, common::Unretained(security_manager_impl_), std::forward<ISecurityManagerListener*>(listener))); common::Unretained(security_manager_impl_), listener, handler)); } void SecurityManager::UnregisterCallbackListener(ISecurityManagerListener* listener) { security_handler_->Post(common::BindOnce(&internal::SecurityManagerImpl::UnregisterCallbackListener, common::Unretained(security_manager_impl_), std::forward<ISecurityManagerListener*>(listener))); common::Unretained(security_manager_impl_), listener)); } system/gd/security/security_manager.h +1 −4 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ namespace security { */ class ISecurityManagerListener { public: ISecurityManagerListener(os::Handler* handler) : handler_(handler) {} virtual ~ISecurityManagerListener() = 0; /** Loading @@ -56,8 +55,6 @@ class ISecurityManagerListener { * @param device pointer to the device that is no longer bonded */ virtual void OnDeviceBondFailed(std::shared_ptr<bluetooth::hci::Device> device) = 0; os::Handler* handler_ = nullptr; }; /** Loading Loading @@ -99,7 +96,7 @@ class SecurityManager { * * @param listener ISecurityManagerListener instance to handle callbacks */ void RegisterCallbackListener(ISecurityManagerListener* listener); void RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler); /** * Unregister listener for callback events from SecurityManager Loading Loading
system/gd/security/internal/security_manager_impl.cc +10 −8 Original line number Diff line number Diff line Loading @@ -100,20 +100,20 @@ void SecurityManagerImpl::RemoveBond(std::shared_ptr<hci::ClassicDevice> device) // Signal Remove from database } void SecurityManagerImpl::RegisterCallbackListener(ISecurityManagerListener* listener) { void SecurityManagerImpl::RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler) { if (listeners_.size() < 1) { listeners_.push_back(listener); listeners_.push_back({listener, handler}); } else { bool found = false; for (auto it = listeners_.begin(); it != listeners_.end(); ++it) { found = *it == listener; found = it->first == listener; if (found) break; } if (found) { LOG_ERROR("Listener has already been registered!"); } else { listeners_.push_back(listener); listeners_.push_back({listener, handler}); } } } Loading @@ -125,7 +125,7 @@ void SecurityManagerImpl::UnregisterCallbackListener(ISecurityManagerListener* l bool found = false; auto it = listeners_.begin(); while (it != listeners_.end()) { found = *it == listener; found = it->first == listener; if (found) break; ++it; } Loading @@ -137,18 +137,20 @@ void SecurityManagerImpl::UnregisterCallbackListener(ISecurityManagerListener* l void SecurityManagerImpl::FireDeviceBondedCallbacks(std::shared_ptr<Device> device) { for (auto& iter : listeners_) { iter->handler_->Post(common::Bind(&ISecurityManagerListener::OnDeviceBonded, common::Unretained(iter), device)); iter.second->Post(common::Bind(&ISecurityManagerListener::OnDeviceBonded, common::Unretained(iter.first), device)); } } void SecurityManagerImpl::FireBondFailedCallbacks(std::shared_ptr<Device> device) { for (auto& iter : listeners_) { iter->handler_->Post(common::Bind(&ISecurityManagerListener::OnDeviceBondFailed, common::Unretained(iter), device)); iter.second->Post( common::Bind(&ISecurityManagerListener::OnDeviceBondFailed, common::Unretained(iter.first), device)); } } void SecurityManagerImpl::FireUnbondCallbacks(std::shared_ptr<Device> device) { for (auto& iter : listeners_) { iter->handler_->Post(common::Bind(&ISecurityManagerListener::OnDeviceUnbonded, common::Unretained(iter), device)); iter.second->Post( common::Bind(&ISecurityManagerListener::OnDeviceUnbonded, common::Unretained(iter.first), device)); } }
system/gd/security/internal/security_manager_impl.h +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include "os/handler.h" #include "security/channel/security_manager_channel.h" #include <utility> namespace bluetooth { namespace security { Loading Loading @@ -80,7 +82,7 @@ class SecurityManagerImpl /*: public channel::ISecurityManagerChannelListener*/ * * @param listener ISecurityManagerListener instance to handle callbacks */ void RegisterCallbackListener(ISecurityManagerListener* listener); void RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler); /** * Unregister listener for callback events from SecurityManager Loading @@ -90,7 +92,7 @@ class SecurityManagerImpl /*: public channel::ISecurityManagerChannelListener*/ void UnregisterCallbackListener(ISecurityManagerListener* listener); protected: std::vector<ISecurityManagerListener*> listeners_; std::vector<std::pair<ISecurityManagerListener*, os::Handler*>> listeners_; void FireDeviceBondedCallbacks(std::shared_ptr<bluetooth::hci::Device> device); void FireBondFailedCallbacks(std::shared_ptr<bluetooth::hci::Device> device); void FireUnbondCallbacks(std::shared_ptr<bluetooth::hci::Device> device); Loading
system/gd/security/security_manager.cc +3 −5 Original line number Diff line number Diff line Loading @@ -47,14 +47,12 @@ void SecurityManager::RemoveBond(std::shared_ptr<hci::ClassicDevice> device) { std::forward<std::shared_ptr<hci::ClassicDevice>>(device))); } void SecurityManager::RegisterCallbackListener(ISecurityManagerListener* listener) { void SecurityManager::RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler) { security_handler_->Post(common::BindOnce(&internal::SecurityManagerImpl::RegisterCallbackListener, common::Unretained(security_manager_impl_), std::forward<ISecurityManagerListener*>(listener))); common::Unretained(security_manager_impl_), listener, handler)); } void SecurityManager::UnregisterCallbackListener(ISecurityManagerListener* listener) { security_handler_->Post(common::BindOnce(&internal::SecurityManagerImpl::UnregisterCallbackListener, common::Unretained(security_manager_impl_), std::forward<ISecurityManagerListener*>(listener))); common::Unretained(security_manager_impl_), listener)); }
system/gd/security/security_manager.h +1 −4 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ namespace security { */ class ISecurityManagerListener { public: ISecurityManagerListener(os::Handler* handler) : handler_(handler) {} virtual ~ISecurityManagerListener() = 0; /** Loading @@ -56,8 +55,6 @@ class ISecurityManagerListener { * @param device pointer to the device that is no longer bonded */ virtual void OnDeviceBondFailed(std::shared_ptr<bluetooth::hci::Device> device) = 0; os::Handler* handler_ = nullptr; }; /** Loading Loading @@ -99,7 +96,7 @@ class SecurityManager { * * @param listener ISecurityManagerListener instance to handle callbacks */ void RegisterCallbackListener(ISecurityManagerListener* listener); void RegisterCallbackListener(ISecurityManagerListener* listener, os::Handler* handler); /** * Unregister listener for callback events from SecurityManager Loading