Chromium Code Reviews| Index: device/bluetooth/bluetooth_adapter_profile_chromeos.cc |
| diff --git a/device/bluetooth/bluetooth_adapter_profile_chromeos.cc b/device/bluetooth/bluetooth_adapter_profile_chromeos.cc |
| index 2feff37aed352abdbf8c54b8f42ecd096f465639..f8f1e7aaecfebd8e356b25f433c69eba94e9131b 100644 |
| --- a/device/bluetooth/bluetooth_adapter_profile_chromeos.cc |
| +++ b/device/bluetooth/bluetooth_adapter_profile_chromeos.cc |
| @@ -18,30 +18,40 @@ |
| namespace chromeos { |
| +namespace { |
| + |
| +void OnRegisterProfileError( |
| + BluetoothAdapterProfileChromeOS* profile, |
| + const BluetoothProfileManagerClient::ErrorCallback& error_callback, |
| + const std::string& error_name, |
| + const std::string& error_message) { |
| + delete profile; |
| + error_callback.Run(error_name, error_message); |
| +} |
| + |
| +} // anonymous namespace |
| + |
| // static |
| -BluetoothAdapterProfileChromeOS* BluetoothAdapterProfileChromeOS::Register( |
| - BluetoothAdapterChromeOS* adapter, |
| +void BluetoothAdapterProfileChromeOS::Register( |
| const device::BluetoothUUID& uuid, |
| const BluetoothProfileManagerClient::Options& options, |
| - const base::Closure& success_callback, |
| + const BluetoothAdapterChromeOS::ProfileRegisteredCallback& success_callback, |
| const BluetoothProfileManagerClient::ErrorCallback& error_callback) { |
| - DCHECK(adapter); |
| - |
| BluetoothAdapterProfileChromeOS* profile = |
| - new BluetoothAdapterProfileChromeOS(adapter, uuid); |
| + new BluetoothAdapterProfileChromeOS(uuid); |
|
Ilya Sherman
2015/03/04 19:20:20
Please use scoped_ptrs rather than manual memory m
Marie Janssen
2015/03/04 23:45:01
Done.
|
| VLOG(1) << "Registering profile: " << profile->object_path().value(); |
| DBusThreadManager::Get()->GetBluetoothProfileManagerClient()->RegisterProfile( |
| - profile->object_path(), uuid.canonical_value(), options, success_callback, |
| - error_callback); |
| - |
| - return profile; |
| + profile->object_path(), |
| + uuid.canonical_value(), |
| + options, |
| + base::Bind(success_callback, profile), |
| + base::Bind(OnRegisterProfileError, profile, error_callback)); |
| } |
| BluetoothAdapterProfileChromeOS::BluetoothAdapterProfileChromeOS( |
| - BluetoothAdapterChromeOS* adapter, |
| const device::BluetoothUUID& uuid) |
| - : uuid_(uuid), adapter_(adapter), weak_ptr_factory_(this) { |
| + : uuid_(uuid), weak_ptr_factory_(this) { |
| std::string uuid_path; |
| base::ReplaceChars(uuid.canonical_value(), ":-", "_", &uuid_path); |
| object_path_ = |
| @@ -54,7 +64,6 @@ BluetoothAdapterProfileChromeOS::BluetoothAdapterProfileChromeOS( |
| } |
| BluetoothAdapterProfileChromeOS::~BluetoothAdapterProfileChromeOS() { |
| - profile_.reset(); |
| } |
| bool BluetoothAdapterProfileChromeOS::SetDelegate( |