| 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..7660ad89f3332c2d4ac83833c4543af2fce71df7 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_ != nullptr) {
|
| + 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_ != nullptr && characteristic_->IsNotifying();
|
| +}
|
| +
|
| +void BluetoothGattNotifySession::Stop(const base::Closure& callback) {
|
| + BluetoothRemoteGattCharacteristic* characteristic = characteristic_.get();
|
| + characteristic_.reset();
|
| + if (characteristic != nullptr) {
|
| + characteristic->StopNotifySession(this, callback);
|
| + } else {
|
| + callback.Run();
|
| + }
|
| }
|
|
|
| } // namespace device
|
|
|