Chromium Code Reviews| Index: chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h |
| diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h |
| index d6361adc3963c2d7650a45b6184117c2ff6439cc..942b8a1bc615968e6df8da9b144c2c72fe09ccb3 100644 |
| --- a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h |
| +++ b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h |
| @@ -24,6 +24,7 @@ class BrowserContext; |
| namespace device { |
| class BluetoothDevice; |
| +class BluetoothDiscoverySession; |
| class BluetoothProfile; |
| } // namespace device |
| @@ -81,6 +82,25 @@ class ExtensionBluetoothEventRouter |
| // registered. |
| bool HasProfile(const std::string& uuid) const; |
| + // Requests that a new device discovery session be initiated for extension |
| + // with id |extension_id|. |callback| is called, if a session has been |
| + // initiated. |error_callback| is called, if the adapter failed to initiate |
| + // the session or if an active session already exists for the extension. |
| + void AddDiscoverySession(device::BluetoothAdapter* adapter, |
| + const std::string& extension_id, |
| + const base::Closure& callback, |
| + const base::Closure& error_callback); |
| + |
| + // Requests that the active discovery session that belongs to the extension |
| + // with id |extension_id| be terminated. |callback| is called, if the session |
| + // successfully ended. |error_callback| is called, if the adapter failed to |
| + // terminate the session or if no active discovery session exists for the |
| + // extension. |
| + void RemoveDiscoverySession(device::BluetoothAdapter* adapter, |
| + const std::string& extension_id, |
| + const base::Closure& callback, |
| + const base::Closure& error_callback); |
|
keybuk
2014/03/04 00:52:07
nit: you have AddDiscoverySession that calls Start
armansito
2014/03/04 01:16:55
Done.
|
| + |
| // Returns the BluetoothProfile that corresponds to |uuid|. It returns NULL |
| // if the BluetoothProfile with |uuid| does not exist. |
| device::BluetoothProfile* GetProfile(const std::string& uuid) const; |
| @@ -88,14 +108,6 @@ class ExtensionBluetoothEventRouter |
| // Get the BluetoothSocket corresponding to |id|. |
| scoped_refptr<device::BluetoothSocket> GetSocket(int id); |
| - // Sets whether this Profile is responsible for the discovering state of the |
| - // adapter. |
| - void SetResponsibleForDiscovery(bool responsible); |
| - bool IsResponsibleForDiscovery() const; |
| - |
| - // Sets whether or not DeviceAdded events will be dispatched to extensions. |
| - void SetSendDiscoveryEvents(bool should_send); |
| - |
| // Dispatch an event that takes a device as a parameter to all renderers. |
| void DispatchDeviceEvent( |
| const std::string& event_name, |
| @@ -127,15 +139,17 @@ class ExtensionBluetoothEventRouter |
| void SetAdapterForTest(device::BluetoothAdapter* adapter) { |
| adapter_ = adapter; |
| } |
| + |
| private: |
| void InitializeAdapterIfNeeded(); |
| void InitializeAdapter(scoped_refptr<device::BluetoothAdapter> adapter); |
| void MaybeReleaseAdapter(); |
| void DispatchAdapterStateEvent(); |
| void CleanUpForExtension(const std::string& extension_id); |
| - |
| - bool send_discovery_events_; |
| - bool responsible_for_discovery_; |
| + void OnStartDiscoverySession( |
| + const std::string& extension_id, |
| + const base::Closure& callback, |
| + scoped_ptr<device::BluetoothDiscoverySession> discovery_session); |
| content::BrowserContext* browser_context_; |
| scoped_refptr<device::BluetoothAdapter> adapter_; |
| @@ -150,15 +164,16 @@ class ExtensionBluetoothEventRouter |
| typedef std::map<int, ExtensionBluetoothSocketRecord> SocketMap; |
| SocketMap socket_map_; |
| - typedef ScopedVector<extensions::api::bluetooth::Device> |
| - DeviceList; |
| - DeviceList discovered_devices_; |
| - |
| // A map that maps uuids to ExtensionBluetoothProfileRecord. |
| typedef std::map<std::string, ExtensionBluetoothProfileRecord> |
| BluetoothProfileMap; |
| BluetoothProfileMap bluetooth_profile_map_; |
| + // A map that maps extension ids to BluetoothDiscoverySession pointers. |
| + typedef std::map<std::string, device::BluetoothDiscoverySession*> |
| + DiscoverySessionMap; |
| + DiscoverySessionMap discovery_session_map_; |
| + |
| content::NotificationRegistrar registrar_; |
| base::WeakPtrFactory<ExtensionBluetoothEventRouter> weak_ptr_factory_; |