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

Unified Diff: device/bluetooth/bluetooth_gatt_connection_chromeos.cc

Issue 1415573014: Reland "Add Linux support for the Bluetooth API" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: build fix. Created 5 years, 1 month 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_connection_chromeos.cc
diff --git a/device/bluetooth/bluetooth_gatt_connection_chromeos.cc b/device/bluetooth/bluetooth_gatt_connection_chromeos.cc
deleted file mode 100644
index 57aaa4d399ad5248704e5076bfd979ed8094bc62..0000000000000000000000000000000000000000
--- a/device/bluetooth/bluetooth_gatt_connection_chromeos.cc
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "device/bluetooth/bluetooth_gatt_connection_chromeos.h"
-
-#include "base/bind.h"
-#include "base/logging.h"
-#include "device/bluetooth/bluetooth_adapter.h"
-#include "device/bluetooth/bluetooth_device.h"
-#include "device/bluetooth/dbus/bluez_dbus_manager.h"
-
-namespace chromeos {
-
-BluetoothGattConnectionChromeOS::BluetoothGattConnectionChromeOS(
- scoped_refptr<device::BluetoothAdapter> adapter,
- const std::string& device_address,
- const dbus::ObjectPath& object_path)
- : BluetoothGattConnection(adapter.get(), device_address),
- connected_(true),
- object_path_(object_path) {
- DCHECK(adapter_.get());
- DCHECK(!device_address_.empty());
- DCHECK(object_path_.IsValid());
-
- bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->AddObserver(this);
-}
-
-BluetoothGattConnectionChromeOS::~BluetoothGattConnectionChromeOS() {
- bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->RemoveObserver(
- this);
- Disconnect();
-}
-
-bool BluetoothGattConnectionChromeOS::IsConnected() {
- // Lazily determine the activity state of the connection. If already
- // marked as inactive, then return false. Otherwise, explicitly mark
- // |connected_| as false if the device is removed or disconnected. We do this,
- // so that if this method is called during a call to DeviceRemoved or
- // DeviceChanged somewhere else, it returns the correct status.
- if (!connected_)
- return false;
-
- bluez::BluetoothDeviceClient::Properties* properties =
- bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties(
- object_path_);
- if (!properties || !properties->connected.value())
- connected_ = false;
-
- return connected_;
-}
-
-void BluetoothGattConnectionChromeOS::Disconnect() {
- if (!connected_) {
- VLOG(1) << "Connection already inactive.";
- return;
- }
-
- // TODO(armansito): There isn't currently a good way to manage the ownership
- // of a connection between Chrome and bluetoothd plugins/profiles. Until
- // a proper reference count is kept by bluetoothd, we might unwittingly kill
- // a connection that is managed by the daemon (e.g. HoG). For now, just return
- // success to indicate that this BluetoothGattConnection is no longer active,
- // even though the underlying connection won't actually be disconnected. This
- // technically doesn't violate the contract put forth by this API.
- connected_ = false;
-}
-
-void BluetoothGattConnectionChromeOS::DeviceRemoved(
- const dbus::ObjectPath& object_path) {
- if (object_path != object_path_)
- return;
-
- connected_ = false;
-}
-
-void BluetoothGattConnectionChromeOS::DevicePropertyChanged(
- const dbus::ObjectPath& object_path,
- const std::string& property_name) {
- if (object_path != object_path_)
- return;
-
- if (!connected_)
- return;
-
- bluez::BluetoothDeviceClient::Properties* properties =
- bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties(
- object_path_);
-
- if (!properties) {
- connected_ = false;
- return;
- }
-
- if (property_name == properties->connected.name() &&
- !properties->connected.value())
- connected_ = false;
-
- // The remote device's bluetooth address may change if it is paired while
- // connected.
- if (property_name == properties->address.name())
- device_address_ = properties->address.value();
-}
-
-} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698