Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1983)

Unified Diff: chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h

Issue 189463002: Migrate chrome.bluetooth API backend to use device::BluetoothDiscoverySession. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..ecc5ff85cf77e48cc9fcbeeca4ee1361c14771af 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 StartDiscoverySession(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 StopDiscoverySession(device::BluetoothAdapter* adapter,
+ const std::string& extension_id,
+ const base::Closure& callback,
+ const base::Closure& error_callback);
+
// 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_;

Powered by Google App Engine
This is Rietveld 408576698