Chromium Code Reviews| Index: device/bluetooth/bluetooth_gatt_notify_session.cc |
| diff --git a/device/bluetooth/bluetooth_gatt_notify_session.cc b/device/bluetooth/bluetooth_gatt_notify_session.cc |
| index 3c9a242388024c5321d4bf4bc1529bd1aaa98b23..cc0c89b2267a22276e40c7363c978a0cd76d3d6e 100644 |
| --- a/device/bluetooth/bluetooth_gatt_notify_session.cc |
| +++ b/device/bluetooth/bluetooth_gatt_notify_session.cc |
| @@ -4,12 +4,45 @@ |
| #include "device/bluetooth/bluetooth_gatt_notify_session.h" |
| +#include "base/bind.h" |
| +#include "base/logging.h" |
| +#include "device/bluetooth/bluetooth_remote_gatt_characteristic.h" |
| + |
| namespace device { |
| -BluetoothGattNotifySession::BluetoothGattNotifySession() { |
| -} |
| +BluetoothGattNotifySession::BluetoothGattNotifySession( |
| + base::WeakPtr<BluetoothRemoteGattCharacteristic> characteristic) |
| + : characteristic_(characteristic), |
| + characteristic_id_(characteristic.get() ? characteristic->GetIdentifier() |
| + : std::string()) {} |
| BluetoothGattNotifySession::~BluetoothGattNotifySession() { |
| + if (characteristic_.get()) { |
|
ortuno
2016/07/28 21:59:29
optional nit: I think the preferred method for che
tommyt
2016/08/01 11:39:21
Done.
|
| + Stop(base::Bind(&base::DoNothing)); |
| + } |
| +} |
| + |
| +std::string BluetoothGattNotifySession::GetCharacteristicIdentifier() const { |
| + return characteristic_id_; |
| +} |
| + |
| +BluetoothRemoteGattCharacteristic* |
| +BluetoothGattNotifySession::GetCharacteristic() const { |
| + return characteristic_.get(); |
| +} |
| + |
| +bool BluetoothGattNotifySession::IsActive() { |
| + return characteristic_.get() != nullptr && characteristic_->IsNotifying(); |
|
ortuno
2016/07/28 21:59:30
When would characteristic_.get() != nullptr and Is
tommyt
2016/08/01 11:39:21
Currently never. However, if we move towards creat
|
| +} |
| + |
| +void BluetoothGattNotifySession::Stop(const base::Closure& callback) { |
| + BluetoothRemoteGattCharacteristic* characteristic = characteristic_.get(); |
| + characteristic_.reset(); |
| + if (characteristic) { |
|
ortuno
2016/07/28 21:59:30
optional nit for clarity: characteristic != nullpt
tommyt
2016/08/01 11:39:21
Done.
|
| + characteristic->StopNotifySession(this, callback); |
| + } else { |
| + callback.Run(); |
| + } |
| } |
| } // namespace device |