Chromium Code Reviews| Index: chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.cc |
| diff --git a/chrome/browser/chromeos/bluetooth/bluetooth_adapter.cc b/chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.cc |
| similarity index 70% |
| rename from chrome/browser/chromeos/bluetooth/bluetooth_adapter.cc |
| rename to chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.cc |
| index 62b8ecb2bd0ce5965051650af27f2b92da7b94cc..49b597a226bff9695f7fdf1ea55e0efd42b56cae 100644 |
| --- a/chrome/browser/chromeos/bluetooth/bluetooth_adapter.cc |
| +++ b/chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.cc |
| @@ -2,38 +2,29 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h" |
| +#include "chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h" |
| + |
| +#include <string> |
| #include "base/bind.h" |
| -#include "base/lazy_instance.h" |
| #include "base/logging.h" |
| #include "base/stl_util.h" |
| #include "base/values.h" |
| -#include "chrome/browser/chromeos/bluetooth/bluetooth_device.h" |
| +#include "chrome/browser/chromeos/bluetooth/bluetooth_device_chromeos.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 "chromeos/dbus/bluetooth_out_of_band_pairing_data.h" |
| #include "chromeos/dbus/dbus_thread_manager.h" |
| #include "dbus/object_path.h" |
| -namespace { |
| - |
| -// Shared default adapter instance, we don't want to keep this class around |
| -// if nobody is using it so use a WeakPtr and create the object when needed; |
| -// since Google C++ Style (and clang's static analyzer) forbids us having |
| -// exit-time destructors we use a leaky lazy instance for it. |
| -base::LazyInstance<base::WeakPtr<chromeos::BluetoothAdapter> >::Leaky |
| - default_adapter = LAZY_INSTANCE_INITIALIZER; |
| - |
| -} // namespace |
| - |
| namespace chromeos { |
| -BluetoothAdapter::BluetoothAdapter() : track_default_(false), |
| - powered_(false), |
| - discovering_(false), |
| - weak_ptr_factory_(this) { |
| +BluetoothAdapterChromeOs::BluetoothAdapterChromeOs() : track_default_(false), |
| + powered_(false), |
| + discovering_(false), |
| + weak_ptr_factory_(this) { |
| DBusThreadManager::Get()->GetBluetoothManagerClient()-> |
| AddObserver(this); |
| DBusThreadManager::Get()->GetBluetoothAdapterClient()-> |
| @@ -42,7 +33,7 @@ BluetoothAdapter::BluetoothAdapter() : track_default_(false), |
| AddObserver(this); |
| } |
| -BluetoothAdapter::~BluetoothAdapter() { |
| +BluetoothAdapterChromeOs::~BluetoothAdapterChromeOs() { |
| DBusThreadManager::Get()->GetBluetoothDeviceClient()-> |
| RemoveObserver(this); |
| DBusThreadManager::Get()->GetBluetoothAdapterClient()-> |
| @@ -53,63 +44,73 @@ BluetoothAdapter::~BluetoothAdapter() { |
| STLDeleteValues(&devices_); |
| } |
| -void BluetoothAdapter::AddObserver(Observer* observer) { |
| +void BluetoothAdapterChromeOs::AddObserver( |
| + BluetoothAdapter::Observer* observer) { |
| DCHECK(observer); |
| observers_.AddObserver(observer); |
| } |
| -void BluetoothAdapter::RemoveObserver(Observer* observer) { |
| +void BluetoothAdapterChromeOs::RemoveObserver( |
| + BluetoothAdapter::Observer* observer) { |
| DCHECK(observer); |
| observers_.RemoveObserver(observer); |
| } |
| -bool BluetoothAdapter::IsPresent() const { |
| +const std::string& BluetoothAdapterChromeOs::address() const { |
| + return address_; |
| +} |
| + |
| +const std::string& BluetoothAdapterChromeOs::name() const { |
| + return name_; |
| +} |
| + |
| +bool BluetoothAdapterChromeOs::IsPresent() const { |
| return !object_path_.value().empty() && !address_.empty(); |
| } |
| -bool BluetoothAdapter::IsPowered() const { |
| +bool BluetoothAdapterChromeOs::IsPowered() const { |
| return powered_; |
| } |
| -void BluetoothAdapter::SetPowered(bool powered, |
| - const base::Closure& callback, |
| - const ErrorCallback& error_callback) { |
| +void BluetoothAdapterChromeOs::SetPowered(bool powered, |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback) { |
| DBusThreadManager::Get()->GetBluetoothAdapterClient()-> |
| GetProperties(object_path_)->powered.Set( |
| powered, |
| - base::Bind(&BluetoothAdapter::OnSetPowered, |
| + base::Bind(&BluetoothAdapterChromeOs::OnSetPowered, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback, |
| error_callback)); |
| } |
| -bool BluetoothAdapter::IsDiscovering() const { |
| +bool BluetoothAdapterChromeOs::IsDiscovering() const { |
| return discovering_; |
| } |
| -void BluetoothAdapter::SetDiscovering(bool discovering, |
| - const base::Closure& callback, |
| - const ErrorCallback& error_callback) { |
| +void BluetoothAdapterChromeOs::SetDiscovering(bool discovering, |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback) { |
| if (discovering) { |
| DBusThreadManager::Get()->GetBluetoothAdapterClient()-> |
| StartDiscovery(object_path_, |
| - base::Bind(&BluetoothAdapter::OnStartDiscovery, |
| + base::Bind(&BluetoothAdapterChromeOs::OnStartDiscovery, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback, |
| error_callback)); |
| } else { |
| DBusThreadManager::Get()->GetBluetoothAdapterClient()-> |
| StopDiscovery(object_path_, |
| - base::Bind(&BluetoothAdapter::OnStopDiscovery, |
| + base::Bind(&BluetoothAdapterChromeOs::OnStopDiscovery, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback, |
| error_callback)); |
| } |
| } |
| -BluetoothAdapter::DeviceList BluetoothAdapter::GetDevices() { |
| +BluetoothAdapter::DeviceList BluetoothAdapterChromeOs::GetDevices() { |
| ConstDeviceList const_devices = |
| - const_cast<const BluetoothAdapter *>(this)->GetDevices(); |
| + const_cast<const BluetoothAdapterChromeOs *>(this)->GetDevices(); |
| DeviceList devices; |
| for (ConstDeviceList::const_iterator i = const_devices.begin(); |
| @@ -119,59 +120,63 @@ BluetoothAdapter::DeviceList BluetoothAdapter::GetDevices() { |
| return devices; |
| } |
| -BluetoothAdapter::ConstDeviceList BluetoothAdapter::GetDevices() const { |
| +BluetoothAdapter::ConstDeviceList BluetoothAdapterChromeOs::GetDevices() const { |
| ConstDeviceList devices; |
| - for (DevicesMap::const_iterator iter = devices_.begin(); |
| - iter != devices_.end(); ++iter) |
| + for (BluetoothAdapterChromeOs::DevicesMap::const_iterator iter = |
| + devices_.begin(); |
| + iter != devices_.end(); |
| + ++iter) |
| devices.push_back(iter->second); |
| return devices; |
| } |
| -BluetoothDevice* BluetoothAdapter::GetDevice(const std::string& address) { |
| +BluetoothDevice* BluetoothAdapterChromeOs::GetDevice( |
| + const std::string& address) { |
| return const_cast<BluetoothDevice *>( |
| - const_cast<const BluetoothAdapter *>(this)->GetDevice(address)); |
| + const_cast<const BluetoothAdapterChromeOs *>(this)->GetDevice(address)); |
| } |
| -const BluetoothDevice* BluetoothAdapter::GetDevice( |
| +const BluetoothDevice* BluetoothAdapterChromeOs::GetDevice( |
| const std::string& address) const { |
| - DevicesMap::const_iterator iter = devices_.find(address); |
| + BluetoothAdapterChromeOs::DevicesMap::const_iterator iter = |
| + devices_.find(address); |
| if (iter != devices_.end()) |
| return iter->second; |
| return NULL; |
| } |
| -void BluetoothAdapter::ReadLocalOutOfBandPairingData( |
| +void BluetoothAdapterChromeOs::ReadLocalOutOfBandPairingData( |
| const BluetoothOutOfBandPairingDataCallback& callback, |
| const ErrorCallback& error_callback) { |
| DBusThreadManager::Get()->GetBluetoothOutOfBandClient()-> |
| ReadLocalData(object_path_, |
| - base::Bind(&BluetoothAdapter::OnReadLocalData, |
| + base::Bind(&BluetoothAdapterChromeOs::OnReadLocalData, |
| weak_ptr_factory_.GetWeakPtr(), |
| callback, |
| error_callback)); |
| } |
| -void BluetoothAdapter::TrackDefaultAdapter() { |
| +void BluetoothAdapterChromeOs::TrackDefaultAdapter() { |
| DVLOG(1) << "Tracking default adapter"; |
| track_default_ = true; |
| DBusThreadManager::Get()->GetBluetoothManagerClient()-> |
| - DefaultAdapter(base::Bind(&BluetoothAdapter::AdapterCallback, |
| + DefaultAdapter(base::Bind(&BluetoothAdapterChromeOs::AdapterCallback, |
| weak_ptr_factory_.GetWeakPtr())); |
| } |
| -void BluetoothAdapter::FindAdapter(const std::string& address) { |
| +void BluetoothAdapterChromeOs::FindAdapter(const std::string& address) { |
| DVLOG(1) << "Using adapter " << address; |
| track_default_ = false; |
| DBusThreadManager::Get()->GetBluetoothManagerClient()-> |
| FindAdapter(address, |
| - base::Bind(&BluetoothAdapter::AdapterCallback, |
| + base::Bind(&BluetoothAdapterChromeOs::AdapterCallback, |
| weak_ptr_factory_.GetWeakPtr())); |
| } |
| -void BluetoothAdapter::AdapterCallback(const dbus::ObjectPath& adapter_path, |
| - bool success) { |
| +void BluetoothAdapterChromeOs::AdapterCallback( |
| + const dbus::ObjectPath& adapter_path, bool success) { |
|
bryeung
2012/09/18 19:18:39
arguments on separate lines please
youngki
2012/09/19 01:13:55
Done.
|
| if (success) { |
| ChangeAdapter(adapter_path); |
| } else if (!object_path_.value().empty()) { |
| @@ -179,18 +184,20 @@ void BluetoothAdapter::AdapterCallback(const dbus::ObjectPath& adapter_path, |
| } |
| } |
| -void BluetoothAdapter::DefaultAdapterChanged( |
| +void BluetoothAdapterChromeOs::DefaultAdapterChanged( |
| const dbus::ObjectPath& adapter_path) { |
| if (track_default_) |
| ChangeAdapter(adapter_path); |
| } |
| -void BluetoothAdapter::AdapterRemoved(const dbus::ObjectPath& adapter_path) { |
| +void BluetoothAdapterChromeOs::AdapterRemoved( |
| + const dbus::ObjectPath& adapter_path) { |
| if (adapter_path == object_path_) |
| RemoveAdapter(); |
| } |
| -void BluetoothAdapter::ChangeAdapter(const dbus::ObjectPath& adapter_path) { |
| +void BluetoothAdapterChromeOs::ChangeAdapter( |
| + const dbus::ObjectPath& adapter_path) { |
| if (object_path_.value().empty()) { |
| DVLOG(1) << "Adapter path initialized to " << adapter_path.value(); |
| } else if (object_path_.value() != adapter_path.value()) { |
| @@ -226,7 +233,7 @@ void BluetoothAdapter::ChangeAdapter(const dbus::ObjectPath& adapter_path) { |
| AdapterPresentChanged(this, true)); |
| } |
| -void BluetoothAdapter::RemoveAdapter() { |
| +void BluetoothAdapterChromeOs::RemoveAdapter() { |
| const bool adapter_was_present = IsPresent(); |
| DVLOG(1) << "Adapter lost."; |
| @@ -243,16 +250,16 @@ void BluetoothAdapter::RemoveAdapter() { |
| AdapterPresentChanged(this, false)); |
| } |
| -void BluetoothAdapter::OnSetPowered(const base::Closure& callback, |
| - const ErrorCallback& error_callback, |
| - bool success) { |
| +void BluetoothAdapterChromeOs::OnSetPowered(const base::Closure& callback, |
| + const ErrorCallback& error_callback, |
|
bryeung
2012/09/18 19:18:39
looks like whitespace is off here
youngki
2012/09/19 01:13:55
Done.
|
| + bool success) { |
| if (success) |
| callback.Run(); |
| else |
| error_callback.Run(); |
| } |
| -void BluetoothAdapter::PoweredChanged(bool powered) { |
| +void BluetoothAdapterChromeOs::PoweredChanged(bool powered) { |
| if (powered == powered_) |
| return; |
| @@ -262,10 +269,11 @@ void BluetoothAdapter::PoweredChanged(bool powered) { |
| AdapterPoweredChanged(this, powered_)); |
| } |
| -void BluetoothAdapter::OnStartDiscovery(const base::Closure& callback, |
| - const ErrorCallback& error_callback, |
| - const dbus::ObjectPath& adapter_path, |
| - bool success) { |
| +void BluetoothAdapterChromeOs::OnStartDiscovery( |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback, |
| + const dbus::ObjectPath& adapter_path, |
| + bool success) { |
| if (success) { |
| DVLOG(1) << object_path_.value() << ": started discovery."; |
| @@ -279,10 +287,11 @@ void BluetoothAdapter::OnStartDiscovery(const base::Closure& callback, |
| } |
| } |
| -void BluetoothAdapter::OnStopDiscovery(const base::Closure& callback, |
| - const ErrorCallback& error_callback, |
| - const dbus::ObjectPath& adapter_path, |
| - bool success) { |
| +void BluetoothAdapterChromeOs::OnStopDiscovery( |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback, |
| + const dbus::ObjectPath& adapter_path, |
| + bool success) { |
| if (success) { |
| DVLOG(1) << object_path_.value() << ": stopped discovery."; |
| callback.Run(); |
| @@ -294,7 +303,7 @@ void BluetoothAdapter::OnStopDiscovery(const base::Closure& callback, |
| } |
| } |
| -void BluetoothAdapter::DiscoveringChanged(bool discovering) { |
| +void BluetoothAdapterChromeOs::DiscoveringChanged(bool discovering) { |
| if (discovering == discovering_) |
| return; |
| @@ -304,7 +313,7 @@ void BluetoothAdapter::DiscoveringChanged(bool discovering) { |
| AdapterDiscoveringChanged(this, discovering_)); |
| } |
| -void BluetoothAdapter::OnReadLocalData( |
| +void BluetoothAdapterChromeOs::OnReadLocalData( |
| const BluetoothOutOfBandPairingDataCallback& callback, |
| const ErrorCallback& error_callback, |
| const BluetoothOutOfBandPairingData& data, |
| @@ -315,7 +324,7 @@ void BluetoothAdapter::OnReadLocalData( |
| error_callback.Run(); |
| } |
| -void BluetoothAdapter::AdapterPropertyChanged( |
| +void BluetoothAdapterChromeOs::AdapterPropertyChanged( |
| const dbus::ObjectPath& adapter_path, |
| const std::string& property_name) { |
| if (adapter_path != object_path_) |
| @@ -343,13 +352,14 @@ void BluetoothAdapter::AdapterPropertyChanged( |
| } |
| } |
| -void BluetoothAdapter::DevicePropertyChanged( |
| +void BluetoothAdapterChromeOs::DevicePropertyChanged( |
| const dbus::ObjectPath& device_path, |
| const std::string& property_name) { |
| UpdateDevice(device_path); |
| } |
| -void BluetoothAdapter::UpdateDevice(const dbus::ObjectPath& device_path) { |
| +void BluetoothAdapterChromeOs::UpdateDevice( |
| + const dbus::ObjectPath& device_path) { |
| BluetoothDeviceClient::Properties* properties = |
| DBusThreadManager::Get()->GetBluetoothDeviceClient()-> |
| GetProperties(device_path); |
| @@ -364,13 +374,13 @@ void BluetoothAdapter::UpdateDevice(const dbus::ObjectPath& device_path) { |
| // to properties, or the device going from discovered to connected and |
| // pairing gaining an object path in the process. In any case, we want |
| // to update the existing object, not create a new one. |
| - DevicesMap::iterator iter = devices_.find(address); |
| - BluetoothDevice* device; |
| + BluetoothAdapterChromeOs::DevicesMap::iterator iter = devices_.find(address); |
|
bryeung
2012/09/18 19:18:39
Does this really need the class prefix?
youngki
2012/09/19 01:13:55
Removed.
|
| + BluetoothDeviceChromeOs* device; |
| const bool update_device = (iter != devices_.end()); |
| if (update_device) { |
| device = iter->second; |
| } else { |
| - device = BluetoothDevice::Create(this); |
| + device = BluetoothDeviceChromeOs::Create(this); |
| devices_[address] = device; |
| } |
| @@ -395,12 +405,12 @@ void BluetoothAdapter::UpdateDevice(const dbus::ObjectPath& device_path) { |
| } |
| } |
| -void BluetoothAdapter::ClearDevices() { |
| - DevicesMap replace; |
| +void BluetoothAdapterChromeOs::ClearDevices() { |
| + BluetoothAdapterChromeOs::DevicesMap replace; |
| devices_.swap(replace); |
| - for (DevicesMap::iterator iter = replace.begin(); |
| + for (BluetoothAdapterChromeOs::DevicesMap::iterator iter = replace.begin(); |
| iter != replace.end(); ++iter) { |
| - BluetoothDevice* device = iter->second; |
| + BluetoothDeviceChromeOs* device = iter->second; |
| if (device->IsSupported() || device->IsPaired()) |
| FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
| DeviceRemoved(this, device)); |
| @@ -409,23 +419,25 @@ void BluetoothAdapter::ClearDevices() { |
| } |
| } |
| -void BluetoothAdapter::DeviceCreated(const dbus::ObjectPath& adapter_path, |
| - const dbus::ObjectPath& device_path) { |
| +void BluetoothAdapterChromeOs::DeviceCreated( |
| + const dbus::ObjectPath& adapter_path, |
| + const dbus::ObjectPath& device_path) { |
| if (adapter_path != object_path_) |
| return; |
| UpdateDevice(device_path); |
| } |
| -void BluetoothAdapter::DeviceRemoved(const dbus::ObjectPath& adapter_path, |
| - const dbus::ObjectPath& device_path) { |
| +void BluetoothAdapterChromeOs::DeviceRemoved( |
| + const dbus::ObjectPath& adapter_path, |
| + const dbus::ObjectPath& device_path) { |
| if (adapter_path != object_path_) |
| return; |
| - DevicesMap::iterator iter = devices_.begin(); |
| + BluetoothAdapterChromeOs::DevicesMap::iterator iter = devices_.begin(); |
| while (iter != devices_.end()) { |
| - BluetoothDevice* device = iter->second; |
| - DevicesMap::iterator temp = iter; |
| + BluetoothDeviceChromeOs* device = iter->second; |
| + BluetoothAdapterChromeOs::DevicesMap::iterator temp = iter; |
| ++iter; |
| if (device->object_path_ != device_path) |
| @@ -459,18 +471,18 @@ void BluetoothAdapter::DeviceRemoved(const dbus::ObjectPath& adapter_path, |
| } |
| } |
| -void BluetoothAdapter::DevicesChanged( |
| +void BluetoothAdapterChromeOs::DevicesChanged( |
| const std::vector<dbus::ObjectPath>& devices) { |
| for (std::vector<dbus::ObjectPath>::const_iterator iter = |
| devices.begin(); iter != devices.end(); ++iter) |
| UpdateDevice(*iter); |
| } |
| -void BluetoothAdapter::ClearDiscoveredDevices() { |
| - DevicesMap::iterator iter = devices_.begin(); |
| +void BluetoothAdapterChromeOs::ClearDiscoveredDevices() { |
| + BluetoothAdapterChromeOs::DevicesMap::iterator iter = devices_.begin(); |
| while (iter != devices_.end()) { |
| - BluetoothDevice* device = iter->second; |
| - DevicesMap::iterator temp = iter; |
| + BluetoothDeviceChromeOs* device = iter->second; |
| + BluetoothAdapterChromeOs::DevicesMap::iterator temp = iter; |
| ++iter; |
| if (!device->IsPaired()) { |
| @@ -484,7 +496,7 @@ void BluetoothAdapter::ClearDiscoveredDevices() { |
| } |
| } |
| -void BluetoothAdapter::DeviceFound( |
| +void BluetoothAdapterChromeOs::DeviceFound( |
| const dbus::ObjectPath& adapter_path, const std::string& address, |
| const BluetoothDeviceClient::Properties& properties) { |
| if (adapter_path != object_path_) |
| @@ -493,13 +505,13 @@ void BluetoothAdapter::DeviceFound( |
| // DeviceFound can also be called to indicate that a device we've |
| // paired with is now visible to the adapter during discovery, in which |
| // case we want to update the existing object, not create a new one. |
| - BluetoothDevice* device; |
| - DevicesMap::iterator iter = devices_.find(address); |
| + BluetoothDeviceChromeOs* device; |
| + BluetoothAdapterChromeOs::DevicesMap::iterator iter = devices_.find(address); |
| const bool update_device = (iter != devices_.end()); |
| if (update_device) { |
| device = iter->second; |
| } else { |
| - device = BluetoothDevice::Create(this); |
| + device = BluetoothDeviceChromeOs::Create(this); |
| devices_[address] = device; |
| } |
| @@ -520,16 +532,16 @@ void BluetoothAdapter::DeviceFound( |
| } |
| } |
| -void BluetoothAdapter::DeviceDisappeared(const dbus::ObjectPath& adapter_path, |
| - const std::string& address) { |
| +void BluetoothAdapterChromeOs::DeviceDisappeared( |
| + const dbus::ObjectPath& adapter_path, const std::string& address) { |
|
bryeung
2012/09/18 19:18:39
arguments on separate lines please
youngki
2012/09/19 01:13:55
Done.
|
| if (adapter_path != object_path_) |
| return; |
| - DevicesMap::iterator iter = devices_.find(address); |
| + BluetoothAdapterChromeOs::DevicesMap::iterator iter = devices_.find(address); |
| if (iter == devices_.end()) |
| return; |
| - BluetoothDevice* device = iter->second; |
| + BluetoothDeviceChromeOs* device = iter->second; |
| // DeviceDisappeared can also be called to indicate that a device we've |
| // paired with is no longer visible to the adapter, so don't remove |
| @@ -554,23 +566,4 @@ void BluetoothAdapter::DeviceDisappeared(const dbus::ObjectPath& adapter_path, |
| } |
| } |
| - |
| -// static |
| -scoped_refptr<BluetoothAdapter> BluetoothAdapter::DefaultAdapter() { |
| - if (!default_adapter.Get().get()) { |
| - BluetoothAdapter* new_adapter = new BluetoothAdapter; |
| - default_adapter.Get() = new_adapter->weak_ptr_factory_.GetWeakPtr(); |
| - default_adapter.Get()->TrackDefaultAdapter(); |
| - } |
| - |
| - return scoped_refptr<BluetoothAdapter>(default_adapter.Get()); |
| -} |
| - |
| -// static |
| -BluetoothAdapter* BluetoothAdapter::Create(const std::string& address) { |
| - BluetoothAdapter* adapter = new BluetoothAdapter; |
| - adapter->FindAdapter(address); |
| - return adapter; |
| -} |
| - |
| } // namespace chromeos |