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

Unified Diff: device/bluetooth/bluetooth_gatt_connection.cc

Issue 1292263002: bluetooth: Create base class BluetoothDevice::CreateGattConnection impl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bt-adapter-
Patch Set: fix ProximityAuthBluetoothLowEnergyConnectionTest Created 5 years, 3 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
« no previous file with comments | « device/bluetooth/bluetooth_gatt_connection.h ('k') | device/bluetooth/bluetooth_gatt_connection_chromeos.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « device/bluetooth/bluetooth_gatt_connection.h ('k') | device/bluetooth/bluetooth_gatt_connection_chromeos.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698