Loading system/gd/hci/acl_manager/le_impl.h +1 −1 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ struct le_impl : public bluetooth::hci::LeAddressManagerCallback { ~le_impl() { if (address_manager_registered) { le_address_manager_->Unregister(this); le_address_manager_->UnregisterSync(this); } delete le_address_manager_; hci_layer_->PutLeAclConnectionInterface(); Loading system/gd/hci/le_address_manager.cc +8 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,14 @@ void LeAddressManager::unregister_client(LeAddressManagerCallback* callback) { } } bool LeAddressManager::UnregisterSync(LeAddressManagerCallback* callback, std::chrono::milliseconds timeout) { handler_->BindOnceOn(this, &LeAddressManager::unregister_client, callback).Invoke(); std::promise<void> promise; auto future = promise.get_future(); handler_->Post(common::BindOnce(&std::promise<void>::set_value, common::Unretained(&promise))); return future.wait_for(timeout) == std::future_status::ready; } void LeAddressManager::AckPause(LeAddressManagerCallback* callback) { handler_->BindOnceOn(this, &LeAddressManager::ack_pause, callback).Invoke(); } Loading system/gd/hci/le_address_manager.h +4 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ namespace bluetooth { namespace hci { constexpr std::chrono::milliseconds kUnregisterSyncTimeoutInMs = std::chrono::milliseconds(10); class LeAddressManagerCallback { public: virtual ~LeAddressManagerCallback() = default; Loading Loading @@ -72,6 +74,8 @@ class LeAddressManager { void AckResume(LeAddressManagerCallback* callback); virtual AddressPolicy Register(LeAddressManagerCallback* callback); virtual void Unregister(LeAddressManagerCallback* callback); virtual bool UnregisterSync( LeAddressManagerCallback* callback, std::chrono::milliseconds timeout = kUnregisterSyncTimeoutInMs); virtual AddressWithType GetCurrentAddress(); // What was set in SetRandomAddress() virtual AddressWithType GetAnotherAddress(); // A new random address without rotating. Loading Loading
system/gd/hci/acl_manager/le_impl.h +1 −1 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ struct le_impl : public bluetooth::hci::LeAddressManagerCallback { ~le_impl() { if (address_manager_registered) { le_address_manager_->Unregister(this); le_address_manager_->UnregisterSync(this); } delete le_address_manager_; hci_layer_->PutLeAclConnectionInterface(); Loading
system/gd/hci/le_address_manager.cc +8 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,14 @@ void LeAddressManager::unregister_client(LeAddressManagerCallback* callback) { } } bool LeAddressManager::UnregisterSync(LeAddressManagerCallback* callback, std::chrono::milliseconds timeout) { handler_->BindOnceOn(this, &LeAddressManager::unregister_client, callback).Invoke(); std::promise<void> promise; auto future = promise.get_future(); handler_->Post(common::BindOnce(&std::promise<void>::set_value, common::Unretained(&promise))); return future.wait_for(timeout) == std::future_status::ready; } void LeAddressManager::AckPause(LeAddressManagerCallback* callback) { handler_->BindOnceOn(this, &LeAddressManager::ack_pause, callback).Invoke(); } Loading
system/gd/hci/le_address_manager.h +4 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ namespace bluetooth { namespace hci { constexpr std::chrono::milliseconds kUnregisterSyncTimeoutInMs = std::chrono::milliseconds(10); class LeAddressManagerCallback { public: virtual ~LeAddressManagerCallback() = default; Loading Loading @@ -72,6 +74,8 @@ class LeAddressManager { void AckResume(LeAddressManagerCallback* callback); virtual AddressPolicy Register(LeAddressManagerCallback* callback); virtual void Unregister(LeAddressManagerCallback* callback); virtual bool UnregisterSync( LeAddressManagerCallback* callback, std::chrono::milliseconds timeout = kUnregisterSyncTimeoutInMs); virtual AddressWithType GetCurrentAddress(); // What was set in SetRandomAddress() virtual AddressWithType GetAnotherAddress(); // A new random address without rotating. Loading