bluetooth: Refactor (Add|Remove)Observer impls into BluetoothAdapter.
In preparation before BluetoothAdapterAndroid impl, move duplicate
implementation of AddObserver, RemoveObserver into the BluetoothAdapter
base class.
BUG=471536
Review URL: https://codereview.chromium.org/1057603004
Cr-Commit-Position: refs/heads/master@{#326186}
diff --git a/device/bluetooth/bluetooth_adapter.cc b/device/bluetooth/bluetooth_adapter.cc
index 14679d6..23fde08 100644
--- a/device/bluetooth/bluetooth_adapter.cc
+++ b/device/bluetooth/bluetooth_adapter.cc
@@ -34,6 +34,16 @@
}
#endif
+void BluetoothAdapter::AddObserver(BluetoothAdapter::Observer* observer) {
+ DCHECK(observer);
+ observers_.AddObserver(observer);
+}
+
+void BluetoothAdapter::RemoveObserver(BluetoothAdapter::Observer* observer) {
+ DCHECK(observer);
+ observers_.RemoveObserver(observer);
+}
+
void BluetoothAdapter::StartDiscoverySession(
const DiscoverySessionCallback& callback,
const ErrorCallback& error_callback) {
diff --git a/device/bluetooth/bluetooth_adapter.h b/device/bluetooth/bluetooth_adapter.h
index e2ebf48..4841048 100644
--- a/device/bluetooth/bluetooth_adapter.h
+++ b/device/bluetooth/bluetooth_adapter.h
@@ -215,9 +215,8 @@
// Adds and removes observers for events on this bluetooth adapter. If
// monitoring multiple adapters, check the |adapter| parameter of observer
// methods to determine which adapter is issuing the event.
- virtual void AddObserver(BluetoothAdapter::Observer* observer) = 0;
- virtual void RemoveObserver(
- BluetoothAdapter::Observer* observer) = 0;
+ virtual void AddObserver(BluetoothAdapter::Observer* observer);
+ virtual void RemoveObserver(BluetoothAdapter::Observer* observer);
// The address of this adapter. The address format is "XX:XX:XX:XX:XX:XX",
// where each XX is a hexadecimal number.
@@ -454,6 +453,9 @@
void DiscoverySessionBecameInactive(
BluetoothDiscoverySession* discovery_session);
+ // Observers of BluetoothAdapter, notified from implementation subclasses.
+ ObserverList<device::BluetoothAdapter::Observer> observers_;
+
// Devices paired with, connected to, discovered by, or visible to the
// adapter. The key is the Bluetooth address of the device and the value is
// the BluetoothDevice object whose lifetime is managed by the adapter
diff --git a/device/bluetooth/bluetooth_adapter_chromeos.cc b/device/bluetooth/bluetooth_adapter_chromeos.cc
index b9cdd09..8f733238 100644
--- a/device/bluetooth/bluetooth_adapter_chromeos.cc
+++ b/device/bluetooth/bluetooth_adapter_chromeos.cc
@@ -144,18 +144,6 @@
delete this;
}
-void BluetoothAdapterChromeOS::AddObserver(
- BluetoothAdapter::Observer* observer) {
- DCHECK(observer);
- observers_.AddObserver(observer);
-}
-
-void BluetoothAdapterChromeOS::RemoveObserver(
- BluetoothAdapter::Observer* observer) {
- DCHECK(observer);
- observers_.RemoveObserver(observer);
-}
-
std::string BluetoothAdapterChromeOS::GetAddress() const {
if (!IsPresent())
return std::string();
diff --git a/device/bluetooth/bluetooth_adapter_chromeos.h b/device/bluetooth/bluetooth_adapter_chromeos.h
index 055bafb9..4254b8a 100644
--- a/device/bluetooth/bluetooth_adapter_chromeos.h
+++ b/device/bluetooth/bluetooth_adapter_chromeos.h
@@ -66,8 +66,6 @@
// BluetoothAdapter:
void Shutdown() override;
void DeleteOnCorrectThread() const override;
- void AddObserver(device::BluetoothAdapter::Observer* observer) override;
- void RemoveObserver(device::BluetoothAdapter::Observer* observer) override;
std::string GetAddress() const override;
std::string GetName() const override;
void SetName(const std::string& name,
@@ -353,9 +351,6 @@
// Object path of the adapter we track.
dbus::ObjectPath object_path_;
- // List of observers interested in event notifications from us.
- ObserverList<device::BluetoothAdapter::Observer> observers_;
-
// Instance of the D-Bus agent object used for pairing, initialized with
// our own class as its delegate.
scoped_ptr<BluetoothAgentServiceProvider> agent_;
diff --git a/device/bluetooth/bluetooth_adapter_mac.h b/device/bluetooth/bluetooth_adapter_mac.h
index bca4389..3567e0f0 100644
--- a/device/bluetooth/bluetooth_adapter_mac.h
+++ b/device/bluetooth/bluetooth_adapter_mac.h
@@ -41,8 +41,6 @@
static base::WeakPtr<BluetoothAdapter> CreateAdapter();
// BluetoothAdapter:
- void AddObserver(BluetoothAdapter::Observer* observer) override;
- void RemoveObserver(BluetoothAdapter::Observer* observer) override;
std::string GetAddress() const override;
std::string GetName() const override;
void SetName(const std::string& name,
@@ -129,9 +127,6 @@
scoped_refptr<base::SequencedTaskRunner> ui_task_runner_;
- // List of observers interested in event notifications from us.
- ObserverList<BluetoothAdapter::Observer> observers_;
-
base::WeakPtrFactory<BluetoothAdapterMac> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(BluetoothAdapterMac);
diff --git a/device/bluetooth/bluetooth_adapter_mac.mm b/device/bluetooth/bluetooth_adapter_mac.mm
index 7c04a433..c2e77eee 100644
--- a/device/bluetooth/bluetooth_adapter_mac.mm
+++ b/device/bluetooth/bluetooth_adapter_mac.mm
@@ -64,16 +64,6 @@
BluetoothAdapterMac::~BluetoothAdapterMac() {
}
-void BluetoothAdapterMac::AddObserver(BluetoothAdapter::Observer* observer) {
- DCHECK(observer);
- observers_.AddObserver(observer);
-}
-
-void BluetoothAdapterMac::RemoveObserver(BluetoothAdapter::Observer* observer) {
- DCHECK(observer);
- observers_.RemoveObserver(observer);
-}
-
std::string BluetoothAdapterMac::GetAddress() const {
return address_;
}
diff --git a/device/bluetooth/bluetooth_adapter_unittest.cc b/device/bluetooth/bluetooth_adapter_unittest.cc
index 81e2dcb..939ae050 100644
--- a/device/bluetooth/bluetooth_adapter_unittest.cc
+++ b/device/bluetooth/bluetooth_adapter_unittest.cc
@@ -19,10 +19,6 @@
TestBluetoothAdapter() {
}
- void AddObserver(BluetoothAdapter::Observer* observer) override {}
-
- void RemoveObserver(BluetoothAdapter::Observer* observer) override {}
-
std::string GetAddress() const override { return ""; }
std::string GetName() const override { return ""; }
diff --git a/device/bluetooth/bluetooth_adapter_win.cc b/device/bluetooth/bluetooth_adapter_win.cc
index a9fc20034..20cd897 100644
--- a/device/bluetooth/bluetooth_adapter_win.cc
+++ b/device/bluetooth/bluetooth_adapter_win.cc
@@ -53,16 +53,6 @@
}
}
-void BluetoothAdapterWin::AddObserver(BluetoothAdapter::Observer* observer) {
- DCHECK(observer);
- observers_.AddObserver(observer);
-}
-
-void BluetoothAdapterWin::RemoveObserver(BluetoothAdapter::Observer* observer) {
- DCHECK(observer);
- observers_.RemoveObserver(observer);
-}
-
std::string BluetoothAdapterWin::GetAddress() const {
return address_;
}
diff --git a/device/bluetooth/bluetooth_adapter_win.h b/device/bluetooth/bluetooth_adapter_win.h
index 2b086a2f..bf22f3d 100644
--- a/device/bluetooth/bluetooth_adapter_win.h
+++ b/device/bluetooth/bluetooth_adapter_win.h
@@ -41,8 +41,6 @@
const InitCallback& init_callback);
// BluetoothAdapter:
- virtual void AddObserver(BluetoothAdapter::Observer* observer) override;
- virtual void RemoveObserver(BluetoothAdapter::Observer* observer) override;
virtual std::string GetAddress() const override;
virtual std::string GetName() const override;
virtual void SetName(const std::string& name,
@@ -152,9 +150,6 @@
base::ThreadChecker thread_checker_;
- // List of observers interested in event notifications from us.
- ObserverList<BluetoothAdapter::Observer> observers_;
-
// NOTE: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<BluetoothAdapterWin> weak_ptr_factory_;