| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef DEVICE_BLUETOOTH_BLUETOOTH_GATT_NOTIFY_SESSION_H_ |
| #define DEVICE_BLUETOOTH_BLUETOOTH_GATT_NOTIFY_SESSION_H_ |
| |
| #include <string> |
| |
| #include "base/callback.h" |
| |
| namespace device { |
| |
| // A BluetoothGattNotifySession represents an active session for listening |
| // to value updates from GATT characteristics that support notifications and/or |
| // indications. Instances are obtained by calling |
| // BluetoothGattCharacteristic::StartNotifySession. |
| class BluetoothGattNotifySession { |
| public: |
| // Destructor autmatically stops this session. |
| virtual ~BluetoothGattNotifySession(); |
| |
| // Returns the identifier of the associated characteristic. |
| virtual std::string GetCharacteristicIdentifier() const = 0; |
| |
| // Returns true if this session is active. |
| virtual bool IsActive() = 0; |
| |
| // Stops this session and calls |callback| upon completion. This won't |
| // necessarily stop value updates from the characteristic -- since updates |
| // are shared among BluetoothGattNotifySession instances -- but it will |
| // terminate this session. |
| virtual void Stop(const base::Closure& callback) = 0; |
| |
| protected: |
| BluetoothGattNotifySession(); |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(BluetoothGattNotifySession); |
| }; |
| |
| } // namespace device |
| |
| #endif // DEVICE_BLUETOOTH_BLUETOOTH_GATT_NOTIFY_SESSION_H_ |