Index: device/bluetooth/bluetooth_gatt_connection.h |
diff --git a/device/bluetooth/bluetooth_gatt_connection.h b/device/bluetooth/bluetooth_gatt_connection.h |
index 1f90636ccc342ac1c33625ceb8c62f02d98482a2..c83fdf0996411fb1191e0ff68a24d52ecc2be9a9 100644 |
--- a/device/bluetooth/bluetooth_gatt_connection.h |
+++ b/device/bluetooth/bluetooth_gatt_connection.h |
@@ -12,6 +12,8 @@ |
namespace device { |
+class BluetoothAdapter; |
+ |
// BluetoothGattConnection represents a GATT connection to a Bluetooth device |
// that has GATT services. Instances are obtained from a BluetoothDevice, |
// and the connection is kept alive as long as there is at least one |
@@ -20,6 +22,9 @@ namespace device { |
// operating system (e.g. due to user action). |
class DEVICE_BLUETOOTH_EXPORT BluetoothGattConnection { |
public: |
+ BluetoothGattConnection(BluetoothAdapter* adapter, |
Jeffrey Yasskin
2015/08/19 22:49:46
Take this as a scoped_refptr<> to make it clear th
scheib
2015/09/13 02:40:28
Done.
|
+ const std::string& device_address); |
+ |
// Destructor automatically closes this GATT connection. If this is the last |
// remaining GATT connection and this results in a call to the OS, that call |
// may not always succeed. Users can make an explicit call to |
@@ -29,19 +34,26 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothGattConnection { |
// Returns the Bluetooth address of the device that this connection is open |
// to. |
- virtual std::string GetDeviceAddress() const = 0; |
+ std::string GetDeviceAddress() const; |
- // Returns true if this connection is open. |
- virtual bool IsConnected() = 0; |
+ // Returns true if this GATT connection is open. |
+ virtual bool IsConnected(); |
// Disconnects this GATT connection. The device may still remain connected due |
// to other GATT connections. |
- virtual void Disconnect() = 0; |
+ virtual void Disconnect(); |
protected: |
- BluetoothGattConnection(); |
+ // The Bluetooth adapter that this connection is associated with. A reference |
+ // is held because BluetoothGattConnection keeps the connection alive. |
+ scoped_refptr<BluetoothAdapter> adapter_; |
Jeffrey Yasskin
2015/08/19 22:49:46
I'm nervous about holding a reference to Bluetooth
scheib
2015/09/13 02:40:28
The adapter doesn't own the connections. The conne
|
+ |
+ // Bluetooth address of the underlying device. |
+ std::string device_address_; |
private: |
+ bool already_decremented_connection_reference_on_device_ = false; |
Jeffrey Yasskin
2015/08/19 22:49:46
Call this something like "owns_reference_for_conne
scheib
2015/09/13 02:40:28
Done.
|
+ |
DISALLOW_COPY_AND_ASSIGN(BluetoothGattConnection); |
}; |