Chromium Code Reviews| 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); |
| }; |