Chromium Code Reviews| Index: device/bluetooth/bluetooth_adapter_profile_chromeos.h |
| diff --git a/device/bluetooth/bluetooth_adapter_profile_chromeos.h b/device/bluetooth/bluetooth_adapter_profile_chromeos.h |
| index 5f1edc2ead5e57aa892079cac232e8b71460515c..5422d9e6904e376e54c1f9d54e1a052334e50544 100644 |
| --- a/device/bluetooth/bluetooth_adapter_profile_chromeos.h |
| +++ b/device/bluetooth/bluetooth_adapter_profile_chromeos.h |
| @@ -21,17 +21,23 @@ namespace chromeos { |
| // profile for custom Bluetooth services managed by a BluetoothAdapter. |
| // Maintains a list of delegates which may serve the profile. |
| // One delegate is allowed for each device. |
| +// |
| +// BluetoothAdapterProfileChromeOS objects are owned by the |
| +// BluetoothAdapterChromeOS and allocated through Register() |
| class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterProfileChromeOS |
| : public chromeos::BluetoothProfileServiceProvider::Delegate { |
| public: |
| + typedef base::Callback<void(BluetoothAdapterProfileChromeOS* profile)> |
| + ProfileRegisteredCallback; |
|
Ilya Sherman
2015/03/04 19:12:48
Can this be a scoped_ptr rather than a raw pointer
Marie Janssen
2015/03/04 23:45:02
Done.
|
| + |
| // Registers a profile with the BlueZ server for |uuid| with the |
| - // options |options|. Returns a newly allocated pointer, or nullptr |
| - // if there was a problem. |
| - static BluetoothAdapterProfileChromeOS* Register( |
| - BluetoothAdapterChromeOS* adapter, |
| + // options |options|. |success_callback| is provided with a newly |
| + // allocated profile if registration is successful, otherwise |error_callback| |
| + // will be called. |
| + static void Register( |
| const device::BluetoothUUID& uuid, |
| const BluetoothProfileManagerClient::Options& options, |
| - const base::Closure& success_callback, |
| + const ProfileRegisteredCallback& success_callback, |
| const BluetoothProfileManagerClient::ErrorCallback& error_callback); |
| ~BluetoothAdapterProfileChromeOS() override; |
| @@ -39,6 +45,9 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterProfileChromeOS |
| // The object path of the profile. |
| const dbus::ObjectPath& object_path() const { return object_path_; } |
| + // Returns the UUID of the profile |
| + const device::BluetoothUUID& uuid() const { return uuid_; } |
| + |
| // Add a delegate for a device associated with this profile. |
| // An empty |device_path| indicates a local listening service. |
| // Returns true if the delegate was set, and false if the |device_path| |
| @@ -55,8 +64,7 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterProfileChromeOS |
| size_t DelegateCount() const { return delegates_.size(); } |
| private: |
| - BluetoothAdapterProfileChromeOS(BluetoothAdapterChromeOS* adapter, |
| - const device::BluetoothUUID& uuid); |
| + BluetoothAdapterProfileChromeOS(const device::BluetoothUUID& uuid); |
| // BluetoothProfileServiceProvider::Delegate: |
| void Released() override; |
| @@ -86,9 +94,6 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterProfileChromeOS |
| // Profile dbus object for receiving profile method calls from BlueZ |
| scoped_ptr<BluetoothProfileServiceProvider> profile_; |
| - // Adapter that owns this profile. |
| - BluetoothAdapterChromeOS* adapter_; |
| - |
| // 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<BluetoothAdapterProfileChromeOS> weak_ptr_factory_; |