Index: device/bluetooth/bluetooth_adapter_chromeos.h |
diff --git a/device/bluetooth/bluetooth_adapter_chromeos.h b/device/bluetooth/bluetooth_adapter_chromeos.h |
index 61e4a3a3da9c3c12e5545a96e13a7a059cb80b00..415fce89e0bfedad78ff5673d0b87bc7aed124ad 100644 |
--- a/device/bluetooth/bluetooth_adapter_chromeos.h |
+++ b/device/bluetooth/bluetooth_adapter_chromeos.h |
@@ -145,8 +145,9 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterChromeOS |
const ProfileRegisteredCallback& success_callback, |
const ErrorCompletionCallback& error_callback); |
- // Releases the profile associated with |uuid| |
- void ReleaseProfile(const device::BluetoothUUID& uuid); |
+ // Release use of a profile by a device. |
+ void ReleaseProfile(const dbus::ObjectPath& device_path, |
+ BluetoothAdapterProfileChromeOS* profile); |
protected: |
// BluetoothAdapter: |
@@ -283,20 +284,21 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterChromeOS |
// Called by dbus:: on completion of the D-Bus method to register a profile. |
void OnRegisterProfile(const device::BluetoothUUID& uuid, |
- const dbus::ObjectPath& device_path, |
- BluetoothProfileServiceProvider::Delegate* delegate, |
- const ProfileRegisteredCallback& success_callback, |
- const ErrorCompletionCallback& error_callback); |
- bool SetProfileDelegate(const device::BluetoothUUID& uuid, |
+ BluetoothAdapterProfileChromeOS* profile); |
+ |
+ void SetProfileDelegate(const device::BluetoothUUID& uuid, |
const dbus::ObjectPath& device_path, |
BluetoothProfileServiceProvider::Delegate* delegate, |
const ProfileRegisteredCallback& success_callback, |
const ErrorCompletionCallback& error_callback); |
void OnRegisterProfileError(const device::BluetoothUUID& uuid, |
- const ErrorCompletionCallback& error_callback, |
const std::string& error_name, |
const std::string& error_message); |
+ // Called by BluetoothAdapterProfileChromeOS when no users of a profile |
+ // remain. |
+ void RemoveProfile(const device::BluetoothUUID& uuid); |
+ |
// Processes the queued discovery requests. For each DiscoveryCallbackPair in |
// the queue, this method will try to add a new discovery session. This method |
// is called whenever a pending D-Bus call to start or stop discovery has |
@@ -340,6 +342,14 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterChromeOS |
// The profiles we have registered with the bluetooth daemon. |
std::map<device::BluetoothUUID, BluetoothAdapterProfileChromeOS*> profiles_; |
+ // Callback pair for the profile registration queue. |
+ typedef std::pair<base::Closure, ErrorCompletionCallback> |
+ RegisterProfileCompletionPair; |
+ |
+ // Queue of delegates waiting for a profile to register. |
+ std::map<device::BluetoothUUID, std::vector<RegisterProfileCompletionPair>*> |
+ profile_queues_; |
+ |
// 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<BluetoothAdapterChromeOS> weak_ptr_factory_; |