| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 | 48 |
| 49 void GetAdapter( | 49 void GetAdapter( |
| 50 const device::BluetoothAdapterFactory::AdapterCallback& callback); | 50 const device::BluetoothAdapterFactory::AdapterCallback& callback); |
| 51 | 51 |
| 52 // Called when a bluetooth event listener is added. | 52 // Called when a bluetooth event listener is added. |
| 53 void OnListenerAdded(); | 53 void OnListenerAdded(); |
| 54 | 54 |
| 55 // Called when a bluetooth event listener is removed. | 55 // Called when a bluetooth event listener is removed. |
| 56 void OnListenerRemoved(); | 56 void OnListenerRemoved(); |
| 57 | 57 |
| 58 // Register the BluetoothSocket |socket| for use by the extensions system. | |
| 59 // This class will hold onto the socket for its lifetime until | |
| 60 // ReleaseSocket is called for the socket, or until the extension associated | |
| 61 // with the socket is disabled/ reloaded. Returns an id for the socket. | |
| 62 int RegisterSocket(const std::string& extension_id, | |
| 63 scoped_refptr<device::BluetoothSocket> socket); | |
| 64 | |
| 65 // Release the BluetoothSocket corresponding to |id|. Returns true if | |
| 66 // the socket was found and released, false otherwise. | |
| 67 bool ReleaseSocket(int id); | |
| 68 | |
| 69 // Add the BluetoothProfile |bluetooth_profile| for use by the extension | 58 // Add the BluetoothProfile |bluetooth_profile| for use by the extension |
| 70 // system. This class will hold onto the profile until RemoveProfile is | 59 // system. This class will hold onto the profile until RemoveProfile is |
| 71 // called for the profile, or until the extension that added the profile | 60 // called for the profile, or until the extension that added the profile |
| 72 // is disabled/reloaded. | 61 // is disabled/reloaded. |
| 73 void AddProfile(const std::string& uuid, | 62 void AddProfile(const std::string& uuid, |
| 74 const std::string& extension_id, | 63 const std::string& extension_id, |
| 75 device::BluetoothProfile* bluetooth_profile); | 64 device::BluetoothProfile* bluetooth_profile); |
| 76 | 65 |
| 77 // Unregister the BluetoothProfile corersponding to |uuid| and release the | 66 // Unregister the BluetoothProfile corersponding to |uuid| and release the |
| 78 // object from this class. | 67 // object from this class. |
| (...skipping 19 matching lines...) Expand all Loading... |
| 98 // extension. | 87 // extension. |
| 99 void StopDiscoverySession(device::BluetoothAdapter* adapter, | 88 void StopDiscoverySession(device::BluetoothAdapter* adapter, |
| 100 const std::string& extension_id, | 89 const std::string& extension_id, |
| 101 const base::Closure& callback, | 90 const base::Closure& callback, |
| 102 const base::Closure& error_callback); | 91 const base::Closure& error_callback); |
| 103 | 92 |
| 104 // Returns the BluetoothProfile that corresponds to |uuid|. It returns NULL | 93 // Returns the BluetoothProfile that corresponds to |uuid|. It returns NULL |
| 105 // if the BluetoothProfile with |uuid| does not exist. | 94 // if the BluetoothProfile with |uuid| does not exist. |
| 106 device::BluetoothProfile* GetProfile(const std::string& uuid) const; | 95 device::BluetoothProfile* GetProfile(const std::string& uuid) const; |
| 107 | 96 |
| 108 // Get the BluetoothSocket corresponding to |id|. | |
| 109 scoped_refptr<device::BluetoothSocket> GetSocket(int id); | |
| 110 | |
| 111 // Dispatch an event that takes a connection socket as a parameter to the | |
| 112 // extension that registered the profile that the socket has connected to. | |
| 113 void DispatchConnectionEvent(const std::string& extension_id, | |
| 114 const std::string& uuid, | |
| 115 const device::BluetoothDevice* device, | |
| 116 scoped_refptr<device::BluetoothSocket> socket); | |
| 117 | |
| 118 // Override from device::BluetoothAdapter::Observer | 97 // Override from device::BluetoothAdapter::Observer |
| 119 virtual void AdapterPresentChanged(device::BluetoothAdapter* adapter, | 98 virtual void AdapterPresentChanged(device::BluetoothAdapter* adapter, |
| 120 bool present) OVERRIDE; | 99 bool present) OVERRIDE; |
| 121 virtual void AdapterPoweredChanged(device::BluetoothAdapter* adapter, | 100 virtual void AdapterPoweredChanged(device::BluetoothAdapter* adapter, |
| 122 bool has_power) OVERRIDE; | 101 bool has_power) OVERRIDE; |
| 123 virtual void AdapterDiscoveringChanged(device::BluetoothAdapter* adapter, | 102 virtual void AdapterDiscoveringChanged(device::BluetoothAdapter* adapter, |
| 124 bool discovering) OVERRIDE; | 103 bool discovering) OVERRIDE; |
| 125 virtual void DeviceAdded(device::BluetoothAdapter* adapter, | 104 virtual void DeviceAdded(device::BluetoothAdapter* adapter, |
| 126 device::BluetoothDevice* device) OVERRIDE; | 105 device::BluetoothDevice* device) OVERRIDE; |
| 127 virtual void DeviceChanged(device::BluetoothAdapter* adapter, | 106 virtual void DeviceChanged(device::BluetoothAdapter* adapter, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 150 void OnStartDiscoverySession( | 129 void OnStartDiscoverySession( |
| 151 const std::string& extension_id, | 130 const std::string& extension_id, |
| 152 const base::Closure& callback, | 131 const base::Closure& callback, |
| 153 scoped_ptr<device::BluetoothDiscoverySession> discovery_session); | 132 scoped_ptr<device::BluetoothDiscoverySession> discovery_session); |
| 154 | 133 |
| 155 content::BrowserContext* browser_context_; | 134 content::BrowserContext* browser_context_; |
| 156 scoped_refptr<device::BluetoothAdapter> adapter_; | 135 scoped_refptr<device::BluetoothAdapter> adapter_; |
| 157 | 136 |
| 158 int num_event_listeners_; | 137 int num_event_listeners_; |
| 159 | 138 |
| 160 // The next id to use for referring to a BluetoothSocket. We avoid using | |
| 161 // the fd of the socket because we don't want to leak that information to | |
| 162 // the extension javascript. | |
| 163 int next_socket_id_; | |
| 164 | |
| 165 typedef std::map<int, ExtensionBluetoothSocketRecord> SocketMap; | |
| 166 SocketMap socket_map_; | |
| 167 | |
| 168 // A map that maps uuids to ExtensionBluetoothProfileRecord. | 139 // A map that maps uuids to ExtensionBluetoothProfileRecord. |
| 169 typedef std::map<std::string, ExtensionBluetoothProfileRecord> | 140 typedef std::map<std::string, ExtensionBluetoothProfileRecord> |
| 170 BluetoothProfileMap; | 141 BluetoothProfileMap; |
| 171 BluetoothProfileMap bluetooth_profile_map_; | 142 BluetoothProfileMap bluetooth_profile_map_; |
| 172 | 143 |
| 173 // A map that maps extension ids to BluetoothDiscoverySession pointers. | 144 // A map that maps extension ids to BluetoothDiscoverySession pointers. |
| 174 typedef std::map<std::string, device::BluetoothDiscoverySession*> | 145 typedef std::map<std::string, device::BluetoothDiscoverySession*> |
| 175 DiscoverySessionMap; | 146 DiscoverySessionMap; |
| 176 DiscoverySessionMap discovery_session_map_; | 147 DiscoverySessionMap discovery_session_map_; |
| 177 | 148 |
| 178 content::NotificationRegistrar registrar_; | 149 content::NotificationRegistrar registrar_; |
| 179 | 150 |
| 180 base::WeakPtrFactory<ExtensionBluetoothEventRouter> weak_ptr_factory_; | 151 base::WeakPtrFactory<ExtensionBluetoothEventRouter> weak_ptr_factory_; |
| 181 | 152 |
| 182 DISALLOW_COPY_AND_ASSIGN(ExtensionBluetoothEventRouter); | 153 DISALLOW_COPY_AND_ASSIGN(ExtensionBluetoothEventRouter); |
| 183 }; | 154 }; |
| 184 | 155 |
| 185 } // namespace extensions | 156 } // namespace extensions |
| 186 | 157 |
| 187 #endif // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_ | 158 #endif // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_ |
| OLD | NEW |