Index: chrome/browser/extensions/api/bluetooth/bluetooth_api_socket.h |
diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_api_socket.h b/chrome/browser/extensions/api/bluetooth/bluetooth_api_socket.h |
index e4b5edd9da14febf561c1f281892723ce469bf46..e6dc0eaba4b1c400dbc610f9db95aa63b38a329a 100644 |
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_api_socket.h |
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_api_socket.h |
@@ -7,6 +7,7 @@ |
#include <string> |
+#include "device/bluetooth/bluetooth_device.h" |
#include "device/bluetooth/bluetooth_socket.h" |
#include "device/bluetooth/bluetooth_uuid.h" |
#include "extensions/browser/api/api_resource.h" |
@@ -23,11 +24,15 @@ namespace extensions { |
// class. All methods must be called on the |kThreadId| thread. |
class BluetoothApiSocket : public ApiResource { |
public: |
- enum ErrorReason { kSystemError, kNotConnected, kIOPending, kDisconnected }; |
+ enum ErrorReason { kSystemError, kNotConnected, kNotListening, kIOPending, |
+ kDisconnected }; |
typedef base::Callback<void(int)> SendCompletionCallback; |
typedef base::Callback<void(int, scoped_refptr<net::IOBuffer> io_buffer)> |
ReceiveCompletionCallback; |
+ typedef base::Callback<void(const device::BluetoothDevice* device, |
+ scoped_refptr<device::BluetoothSocket>)> |
+ AcceptCompletionCallback; |
typedef base::Callback<void(ErrorReason, const std::string& error_message)> |
ErrorCompletionCallback; |
@@ -45,8 +50,14 @@ class BluetoothApiSocket : public ApiResource { |
const std::string& device_address, |
const device::BluetoothUUID& uuid); |
+ // Adopts a socket |socket| listening on a service advertised with UUID |
+ // |uuid|. |
+ virtual void AdoptListeningSocket( |
+ scoped_refptr<device::BluetoothSocket> socket, |
+ const device::BluetoothUUID& uuid); |
+ |
// Closes the underlying connection. This is a best effort, and never fails. |
- virtual void Disconnect(const base::Closure& success_callback); |
+ virtual void Disconnect(const base::Closure& callback); |
// Receives data from the socket and calls |success_callback| when data is |
// available. |count| is maximum amount of bytes received. If an error occurs, |
@@ -68,6 +79,12 @@ class BluetoothApiSocket : public ApiResource { |
const SendCompletionCallback& success_callback, |
const ErrorCompletionCallback& error_callback); |
+ // Accepts a client connection from the socket and calls |success_callback| |
+ // when one has connected. If an error occurs, calls |error_callback| with a |
+ // reason and a message. |
+ virtual void Accept(const AcceptCompletionCallback& success_callback, |
+ const ErrorCompletionCallback& error_callback); |
+ |
const std::string& device_address() const { return device_address_; } |
const device::BluetoothUUID& uuid() const { return uuid_; } |
@@ -106,6 +123,10 @@ class BluetoothApiSocket : public ApiResource { |
const ErrorCompletionCallback& error_callback, |
const std::string& message); |
+ static void OnSocketAcceptError( |
+ const ErrorCompletionCallback& error_callback, |
+ const std::string& message); |
+ |
// The underlying device socket instance. |
scoped_refptr<device::BluetoothSocket> socket_; |