| Index: device/bluetooth/bluetooth_gatt_connection.cc
|
| diff --git a/device/bluetooth/bluetooth_gatt_connection.cc b/device/bluetooth/bluetooth_gatt_connection.cc
|
| index 721391e8d1a803db0aa87aa76d5d89b583a5b950..233476c6d466a6002d0bee249b23119df3b97da6 100644
|
| --- a/device/bluetooth/bluetooth_gatt_connection.cc
|
| +++ b/device/bluetooth/bluetooth_gatt_connection.cc
|
| @@ -4,12 +4,49 @@
|
|
|
| #include "device/bluetooth/bluetooth_gatt_connection.h"
|
|
|
| +#include "device/bluetooth/bluetooth_adapter.h"
|
| +
|
| namespace device {
|
|
|
| -BluetoothGattConnection::BluetoothGattConnection() {
|
| +BluetoothGattConnection::BluetoothGattConnection(
|
| + scoped_refptr<device::BluetoothAdapter> adapter,
|
| + const std::string& device_address)
|
| + : adapter_(adapter), device_address_(device_address) {
|
| + DCHECK(adapter_.get());
|
| + DCHECK(!device_address_.empty());
|
| +
|
| + device_ = adapter_->GetDevice(device_address_);
|
| + DCHECK(device_);
|
| + owns_reference_for_connection_ = true;
|
| + device_->AddGattConnection(this);
|
| }
|
|
|
| BluetoothGattConnection::~BluetoothGattConnection() {
|
| + Disconnect();
|
| +}
|
| +
|
| +const std::string& BluetoothGattConnection::GetDeviceAddress() const {
|
| + return device_address_;
|
| +}
|
| +
|
| +bool BluetoothGattConnection::IsConnected() {
|
| + if (!owns_reference_for_connection_)
|
| + return false;
|
| + DCHECK(adapter_->GetDevice(device_address_));
|
| + DCHECK(device_->IsGattConnected());
|
| + return true;
|
| +}
|
| +
|
| +void BluetoothGattConnection::Disconnect() {
|
| + if (!owns_reference_for_connection_)
|
| + return;
|
| +
|
| + owns_reference_for_connection_ = false;
|
| + device_->RemoveGattConnection(this);
|
| +}
|
| +
|
| +void BluetoothGattConnection::InvalidateConnectionReference() {
|
| + owns_reference_for_connection_ = false;
|
| }
|
|
|
| } // namespace device
|
|
|