| Index: chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h
|
| diff --git a/chrome/browser/extensions/bluetooth_event_router.h b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h
|
| similarity index 84%
|
| rename from chrome/browser/extensions/bluetooth_event_router.h
|
| rename to chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h
|
| index 657053879190b2520ae6f936a4d4e8c665fa1105..b51182230fc4d1c064c688e6a0ca80f371391d90 100644
|
| --- a/chrome/browser/extensions/bluetooth_event_router.h
|
| +++ b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h
|
| @@ -2,18 +2,19 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CHROME_BROWSER_EXTENSIONS_BLUETOOTH_EVENT_ROUTER_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_BLUETOOTH_EVENT_ROUTER_H_
|
| +#ifndef CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_
|
| +#define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_
|
|
|
| #include <map>
|
|
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_vector.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/extensions/api/bluetooth.h"
|
| #include "device/bluetooth/bluetooth_adapter.h"
|
| #include "device/bluetooth/bluetooth_socket.h"
|
|
|
| +class Profile;
|
| +
|
| namespace extensions {
|
|
|
| class ExtensionBluetoothEventRouter
|
| @@ -24,15 +25,17 @@ class ExtensionBluetoothEventRouter
|
|
|
| // adapter() will return NULL if the bluetooth adapter is not supported in the
|
| // current platform.
|
| - const device::BluetoothAdapter* adapter() const {
|
| - return adapter_.get();
|
| - }
|
| + scoped_refptr<const device::BluetoothAdapter> adapter();
|
|
|
| // GetMutableAdapter will return NULL if the bluetooth adapter is not
|
| // supported in the current platform.
|
| - device::BluetoothAdapter* GetMutableAdapter() {
|
| - return adapter_.get();
|
| - }
|
| + scoped_refptr<device::BluetoothAdapter> GetMutableAdapter();
|
| +
|
| + // Called when a bluetooth event listener is added.
|
| + void OnListenerAdded();
|
| +
|
| + // Called when a bluetooth event listener is removed.
|
| + void OnListenerRemoved();
|
|
|
| // Register the BluetoothSocket |socket| for use by the extensions system.
|
| // This class will hold onto the socket for its lifetime, or until
|
| @@ -74,6 +77,8 @@ class ExtensionBluetoothEventRouter
|
| adapter_ = adapter;
|
| }
|
| private:
|
| + void InitializeAdapterIfNeeded();
|
| + void MaybeReleaseAdapter();
|
| void DispatchBooleanValueEvent(const char* event_name, bool value);
|
|
|
| bool send_discovery_events_;
|
| @@ -82,6 +87,8 @@ class ExtensionBluetoothEventRouter
|
| Profile* profile_;
|
| scoped_refptr<device::BluetoothAdapter> adapter_;
|
|
|
| + int num_event_listeners_;
|
| +
|
| // The next id to use for referring to a BluetoothSocket. We avoid using
|
| // the fd of the socket because we don't want to leak that information to
|
| // the extension javascript.
|
| @@ -99,4 +106,4 @@ class ExtensionBluetoothEventRouter
|
|
|
| } // namespace extensions
|
|
|
| -#endif // CHROME_BROWSER_EXTENSIONS_BLUETOOTH_EVENT_ROUTER_H_
|
| +#endif // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_EVENT_ROUTER_H_
|
|
|