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

Unified Diff: chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h

Issue 10899037: Refactoring bluetooth API code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed ASSERT_TRUE checks. Created 8 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
Index: chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h
diff --git a/chrome/browser/chromeos/bluetooth/bluetooth_adapter.h b/chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h
similarity index 50%
copy from chrome/browser/chromeos/bluetooth/bluetooth_adapter.h
copy to chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h
index 673aac547d3583fd9cd35dfb31e43c733dba1601..2a0db654923426b15ac0758709fada03bd72233d 100644
--- a/chrome/browser/chromeos/bluetooth/bluetooth_adapter.h
+++ b/chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_ADAPTER_H_
-#define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_ADAPTER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_ADAPTER_CHROMEOS_H_
+#define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_ADAPTER_CHROMEOS_H_
#include <map>
#include <string>
@@ -11,161 +11,55 @@
#include "base/basictypes.h"
#include "base/callback.h"
-#include "base/memory/ref_counted.h"
#include "base/observer_list.h"
+#include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h"
#include "chromeos/dbus/bluetooth_adapter_client.h"
#include "chromeos/dbus/bluetooth_device_client.h"
#include "chromeos/dbus/bluetooth_manager_client.h"
-#include "chromeos/dbus/bluetooth_out_of_band_client.h"
#include "dbus/object_path.h"
namespace chromeos {
-class BluetoothDevice;
-
-// The BluetoothAdapter class represents a local Bluetooth adapter which
-// may be used to interact with remote Bluetooth devices. As well as
-// providing support for determining whether an adapter is present, and
-// whether the radio is powered, this class also provides support for
-// obtaining the list of remote devices known to the adapter, discovering
-// new devices, and providing notification of updates to device information.
-//
-// The class may be instantiated for either a specific adapter, or for the
-// generic "default adapter" which may change depending on availability.
-class BluetoothAdapter : public base::RefCounted<BluetoothAdapter>,
- public BluetoothManagerClient::Observer,
- public BluetoothAdapterClient::Observer,
- public BluetoothDeviceClient::Observer {
+class BluetoothDeviceChromeOs;
+
+struct BluetoothOutOfBandPairingData;
+
+// The BluetoothAdapterChromeOs class is an implementation of BluetoothAdapter
+// for Chrome OS platform.
+class BluetoothAdapterChromeOs : public BluetoothAdapter,
+ public BluetoothManagerClient::Observer,
+ public BluetoothAdapterClient::Observer,
+ public BluetoothDeviceClient::Observer {
public:
- // Interface for observing changes from bluetooth adapters.
- class Observer {
- public:
- virtual ~Observer() {}
-
- // Called when the presence of the adapter |adapter| changes, when
- // |present| is true the adapter is now present, false means the adapter
- // has been removed from the system.
- virtual void AdapterPresentChanged(BluetoothAdapter* adapter,
- bool present) {}
-
- // Called when the radio power state of the adapter |adapter| changes,
- // when |powered| is true the adapter radio is powered, false means the
- // adapter radio is off.
- virtual void AdapterPoweredChanged(BluetoothAdapter* adapter,
- bool powered) {}
-
- // Called when the discovering state of the adapter |adapter| changes,
- // when |discovering| is true the adapter is seeking new devices, false
- // means it is not. Note that device discovery involves both states when
- // the adapter is seeking new devices and states when it is not because
- // it is interrogating the devices it found.
- virtual void AdapterDiscoveringChanged(BluetoothAdapter* adapter,
- bool discovering) {}
-
- // Called when a new device |device| is added to the adapter |adapter|,
- // either because it has been discovered or a connection made. |device|
- // should not be cached, instead copy its address.
- virtual void DeviceAdded(BluetoothAdapter* adapter,
- BluetoothDevice* device) {}
-
- // Called when properties of the device |device| known to the adapter
- // |adapter| change. |device| should not be cached, instead copy its
- // address.
- virtual void DeviceChanged(BluetoothAdapter* adapter,
- BluetoothDevice* device) {}
-
- // Called when the device |device| is removed from the adapter |adapter|,
- // either as a result of a discovered device being lost between discovering
- // phases or pairing information deleted. |device| should not be cached.
- virtual void DeviceRemoved(BluetoothAdapter* adapter,
- BluetoothDevice* device) {}
- };
-
- // 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.
- void AddObserver(Observer* observer);
- void RemoveObserver(Observer* observer);
-
- // The ErrorCallback is used for methods that can fail in which case it
- // is called, in the success case the callback is simply not called.
- typedef base::Callback<void()> ErrorCallback;
-
- // The BluetoothOutOfBandPairingDataCallback is used to return
- // BluetoothOutOfBandPairingData to the caller.
- typedef base::Callback<void(const BluetoothOutOfBandPairingData& data)>
- BluetoothOutOfBandPairingDataCallback;
-
- // The address of this adapter. The address format is "XX:XX:XX:XX:XX:XX",
- // where each XX is a hexadecimal number.
- const std::string& address() const { return address_; }
-
- // The name of the adapter.
- const std::string& name() const { return name_; }
-
- // Indicates whether the adapter is actually present on the system, for
- // the default adapter this indicates whether any adapter is present. An
- // adapter is only considered present if the address has been obtained.
- virtual bool IsPresent() const;
-
- // Indicates whether the adapter radio is powered.
- virtual bool IsPowered() const;
-
- // Requests a change to the adapter radio power, setting |powered| to true
- // will turn on the radio and false will turn it off. On success, callback
- // will be called. On failure, |error_callback| will be called.
- void SetPowered(bool powered,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Indicates whether the adapter is currently discovering new devices,
- // note that a typical discovery process has phases of this being true
- // followed by phases of being false when the adapter interrogates the
- // devices found.
- virtual bool IsDiscovering() const;
-
- // Requests that the adapter either begin discovering new devices when
- // |discovering| is true, or cease any discovery when false. On success,
- // callback will be called. On failure, |error_callback| will be called.
- virtual void SetDiscovering(bool discovering,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Requests the list of devices from the adapter, all are returned
- // including those currently connected and those paired. Use the
- // returned device pointers to determine which they are.
- typedef std::vector<BluetoothDevice*> DeviceList;
- virtual DeviceList GetDevices();
- typedef std::vector<const BluetoothDevice*> ConstDeviceList;
- virtual ConstDeviceList GetDevices() const;
-
- // Returns a pointer to the device with the given address |address| or
- // NULL if no such device is known.
- virtual BluetoothDevice* GetDevice(const std::string& address);
- virtual const BluetoothDevice* GetDevice(const std::string& address) const;
-
- // Requests the local Out Of Band pairing data.
+ // BluetoothAdapter override
+ virtual void AddObserver(BluetoothAdapter::Observer* observer) OVERRIDE;
+ virtual void RemoveObserver(BluetoothAdapter::Observer* observer) OVERRIDE;
+ virtual bool IsPresent() const OVERRIDE;
+ virtual bool IsPowered() const OVERRIDE;
+ virtual void SetPowered(
+ bool powered,
+ const base::Closure& callback,
+ const ErrorCallback& error_callback) OVERRIDE;
+ virtual bool IsDiscovering() const OVERRIDE;
+ virtual void SetDiscovering(
+ bool discovering,
+ const base::Closure& callback,
+ const ErrorCallback& error_callback) OVERRIDE;
+ virtual ConstDeviceList GetDevices() const OVERRIDE;
+ virtual BluetoothDevice* GetDevice(const std::string& address) OVERRIDE;
+ virtual const BluetoothDevice* GetDevice(
+ const std::string& address) const OVERRIDE;
virtual void ReadLocalOutOfBandPairingData(
const BluetoothOutOfBandPairingDataCallback& callback,
- const ErrorCallback& error_callback);
-
- // Returns the shared instance for the default adapter, whichever that may
- // be at the time. Use IsPresent() and the AdapterPresentChanged() observer
- // method to determine whether an adapter is actually available or not.
- static scoped_refptr<BluetoothAdapter> DefaultAdapter();
-
- // Creates an instance for a specific adapter named by |address|, which
- // may be the bluetooth address of the adapter or a device name such as
- // "hci0".
- static BluetoothAdapter* Create(const std::string& address);
+ const ErrorCallback& error_callback) OVERRIDE;
private:
- friend class base::RefCounted<BluetoothAdapter>;
- friend class BluetoothDevice;
+ friend class BluetoothAdapterFactory;
+ friend class BluetoothDeviceChromeOs;
friend class MockBluetoothAdapter;
- BluetoothAdapter();
- virtual ~BluetoothAdapter();
+ BluetoothAdapterChromeOs();
+ virtual ~BluetoothAdapterChromeOs();
// Obtains the default adapter object path from the Bluetooth Daemon
// and tracks future changes to it.
@@ -293,7 +187,8 @@ class BluetoothAdapter : public base::RefCounted<BluetoothAdapter>,
// |properties| supports only value() calls, not Get() or Set(), and
// should be copied if needed.
virtual void DeviceFound(
- const dbus::ObjectPath& adapter_path, const std::string& address,
+ const dbus::ObjectPath& adapter_path,
+ const std::string& address,
const BluetoothDeviceClient::Properties& properties) OVERRIDE;
// BluetoothAdapterClient::Observer override.
@@ -313,12 +208,6 @@ class BluetoothAdapter : public base::RefCounted<BluetoothAdapter>,
bool track_default_;
dbus::ObjectPath object_path_;
- // Address of the adapter.
- std::string address_;
-
- // Name of the adapter.
- std::string name_;
-
// Tracked adapter state, cached locally so we only send change notifications
// to observers on a genuine change.
bool powered_;
@@ -326,18 +215,18 @@ class BluetoothAdapter : public base::RefCounted<BluetoothAdapter>,
// 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
- // instance.
- typedef std::map<const std::string, BluetoothDevice*> DevicesMap;
+ // is the BluetoothDeviceChromeOs object whose lifetime is managed by the
+ // adapter instance.
+ typedef std::map<const std::string, BluetoothDeviceChromeOs*> DevicesMap;
DevicesMap devices_;
// 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<BluetoothAdapter> weak_ptr_factory_;
+ base::WeakPtrFactory<BluetoothAdapterChromeOs> weak_ptr_factory_;
- DISALLOW_COPY_AND_ASSIGN(BluetoothAdapter);
+ DISALLOW_COPY_AND_ASSIGN(BluetoothAdapterChromeOs);
};
} // namespace chromeos
-#endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_ADAPTER_H_
+#endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_ADAPTER_CHROMEOS_H_

Powered by Google App Engine
This is Rietveld 408576698