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); |
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( |