Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1187)

Unified Diff: device/bluetooth/bluetooth_gatt_notify_session.h

Issue 2051333004: Implement BluetoothGattNotifySession::Stop on Android, 2nd attempt (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile error on windows Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/bluetooth/bluetooth_gatt_notify_session.h
diff --git a/device/bluetooth/bluetooth_gatt_notify_session.h b/device/bluetooth/bluetooth_gatt_notify_session.h
index 4d1ddf692e4c95c600f4fa5d560952f8051c3475..149999950044234132804c1ad3e369a4219ce240 100644
--- a/device/bluetooth/bluetooth_gatt_notify_session.h
+++ b/device/bluetooth/bluetooth_gatt_notify_session.h
@@ -9,35 +9,49 @@
#include "base/callback.h"
#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
#include "device/bluetooth/bluetooth_export.h"
namespace device {
+class BluetoothRemoteGattCharacteristic;
+
// 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
// BluetoothRemoteGattCharacteristic::StartNotifySession.
class DEVICE_BLUETOOTH_EXPORT BluetoothGattNotifySession {
public:
+ explicit BluetoothGattNotifySession(
+ base::WeakPtr<BluetoothRemoteGattCharacteristic> characteristic);
+
// Destructor automatically stops this session.
virtual ~BluetoothGattNotifySession();
// Returns the identifier of the associated characteristic.
- virtual std::string GetCharacteristicIdentifier() const = 0;
+ virtual std::string GetCharacteristicIdentifier() const;
+
+ // Returns the associated characteristic. This function will return nullptr
+ // if the associated characteristic is deleted.
+ virtual BluetoothRemoteGattCharacteristic* GetCharacteristic() const;
- // Returns true if this session is active.
- virtual bool IsActive() = 0;
+ // Returns true if this session is active. Notify sessions are active from
+ // the time of creation, until they have been stopped, either explicitly, or
+ // because the remote device disconnects.
+ virtual bool IsActive();
// 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();
+ virtual void Stop(const base::Closure& callback);
private:
+ // The associated characteristic.
+ base::WeakPtr<BluetoothRemoteGattCharacteristic> characteristic_;
+ std::string characteristic_id_;
+ bool active_;
+
DISALLOW_COPY_AND_ASSIGN(BluetoothGattNotifySession);
};

Powered by Google App Engine
This is Rietveld 408576698