| Index: chrome/browser/chromeos/extensions/bluetooth_event_router.h
|
| diff --git a/chrome/browser/chromeos/extensions/bluetooth_event_router.h b/chrome/browser/chromeos/extensions/bluetooth_event_router.h
|
| index 73b73364e939e1db245454eab0f5e0d59a9cd9f3..f8056612fc93770e856433d136a499b8964ce422 100644
|
| --- a/chrome/browser/chromeos/extensions/bluetooth_event_router.h
|
| +++ b/chrome/browser/chromeos/extensions/bluetooth_event_router.h
|
| @@ -6,8 +6,12 @@
|
| #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_BLUETOOTH_EVENT_ROUTER_H_
|
| #pragma once
|
|
|
| +#include <map>
|
| +
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h"
|
| +#include "chrome/browser/chromeos/bluetooth/bluetooth_socket.h"
|
| #include "chrome/browser/profiles/profile.h"
|
|
|
| namespace chromeos {
|
| @@ -21,6 +25,18 @@ class ExtensionBluetoothEventRouter
|
| const chromeos::BluetoothAdapter* adapter() const { return adapter_.get(); }
|
| chromeos::BluetoothAdapter* GetMutableAdapter() { return adapter_.get(); }
|
|
|
| + // Register the BluetoothSocket |socket| for use by the extensions system.
|
| + // This class will hold onto the socket for its lifetime, or until
|
| + // ReleaseSocket is called for the socket. Returns an id for the socket.
|
| + int RegisterSocket(scoped_refptr<BluetoothSocket> socket);
|
| +
|
| + // Release the BluetoothSocket corresponding to |id|. Returns true if
|
| + // the socket was found and released, false otherwise.
|
| + bool ReleaseSocket(int id);
|
| +
|
| + // Get the BluetoothSocket corresponding to |id|.
|
| + scoped_refptr<BluetoothSocket> GetSocket(int id);
|
| +
|
| // Override from chromeos::BluetoothAdapter::Observer
|
| virtual void AdapterPresentChanged(
|
| chromeos::BluetoothAdapter* adapter, bool present) OVERRIDE;
|
| @@ -31,6 +47,15 @@ class ExtensionBluetoothEventRouter
|
|
|
| Profile* profile_;
|
| scoped_ptr<chromeos::BluetoothAdapter> adapter_;
|
| +
|
| + // 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.
|
| + int next_socket_id_;
|
| +
|
| + typedef std::map<int, scoped_refptr<BluetoothSocket> > SocketMap;
|
| + SocketMap socket_map_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ExtensionBluetoothEventRouter);
|
| };
|
|
|
|
|