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 d8f8024264b5103b3d452e2d7a008206ab85ecb6..3225c76e112386fd064b04a53b14acb4afd63d3d 100644 |
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h |
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h |
@@ -17,6 +17,13 @@ |
class Profile; |
+namespace device { |
+ |
+class BluetoothDevice; |
+class BluetoothProfile; |
+ |
+} // namespace device |
+ |
namespace extensions { |
class ExtensionBluetoothEventRouter |
@@ -47,6 +54,20 @@ class ExtensionBluetoothEventRouter |
// the socket was found and released, false otherwise. |
bool ReleaseSocket(int id); |
+ // Add the BluetoothProfile |bluetooth_profile| for use by the extension |
+ // system. This class will hold onto the profile for its lifetime, or until |
+ // RemoveProfile is called for the profile. |
+ void AddProfile(const std::string& uuid, |
+ device::BluetoothProfile* bluetooth_profile); |
+ |
+ // Unregister the BluetoothProfile corersponding to |uuid| and release the |
+ // object from this class. |
+ void RemoveProfile(const std::string& uuid); |
+ |
+ // Returns true if the BluetoothProfile corresponding to |uuid| is already |
+ // registered. |
+ bool HasProfile(const std::string& uuid) const; |
+ |
// Get the BluetoothSocket corresponding to |id|. |
scoped_refptr<device::BluetoothSocket> GetSocket(int id); |
@@ -63,6 +84,13 @@ class ExtensionBluetoothEventRouter |
const char* event_name, |
const extensions::api::bluetooth::Device& device); |
+ // Dispatch an event that takes a connection socket as a parameter to the |
+ // extension that registered the profile that the socket has connected to. |
+ void DispatchConnectionEvent(const std::string& extension_id, |
+ const std::string& uuid, |
+ const device::BluetoothDevice* device, |
+ scoped_refptr<device::BluetoothSocket> socket); |
+ |
// Override from device::BluetoothAdapter::Observer |
virtual void AdapterPresentChanged(device::BluetoothAdapter* adapter, |
bool present) OVERRIDE; |
@@ -103,6 +131,10 @@ class ExtensionBluetoothEventRouter |
DeviceList; |
DeviceList discovered_devices_; |
+ // A map that maps uuids to the BluetoothProfile objects. |
+ typedef std::map<std::string, device::BluetoothProfile*> BluetoothProfileMap; |
+ BluetoothProfileMap bluetooth_profile_map_; |
+ |
base::WeakPtrFactory<ExtensionBluetoothEventRouter> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(ExtensionBluetoothEventRouter); |