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

Unified Diff: device/bluetooth/bluetooth_gatt_notify_session.cc

Issue 2051333004: Implement BluetoothGattNotifySession::Stop on Android, 2nd attempt (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make the rest of the methods in BluetoothGattNotifySession virtual Created 4 years, 5 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.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

Powered by Google App Engine
This is Rietveld 408576698