Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1619)

Unified Diff: chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_event_dispatcher.h

Issue 278663002: Implement chrome.bluetoothSocket.listenUsing*() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_event_dispatcher.h
diff --git a/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_event_dispatcher.h b/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_event_dispatcher.h
index fa13597842337b80b06036c200c4148ceea61640..26e2315d5da9b7e55747fa4f8f2bfcf6f3687317 100644
--- a/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_event_dispatcher.h
+++ b/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_event_dispatcher.h
@@ -13,6 +13,11 @@ namespace content {
class BrowserContext;
}
+namespace device {
+class BluetoothDevice;
+class BluetoothSocket;
+}
+
namespace extensions {
struct Event;
class BluetoothApiSocket;
@@ -33,6 +38,9 @@ class BluetoothSocketEventDispatcher
// Socket is active, start receiving data from it.
void OnSocketConnect(const std::string& extension_id, int socket_id);
+ // Socket is active again, start accepting connections from it.
+ void OnSocketListen(const std::string& extension_id, int socket_id);
+
// Socket is active again, start receiving data from it.
void OnSocketResume(const std::string& extension_id, int socket_id);
@@ -51,11 +59,12 @@ class BluetoothSocketEventDispatcher
static const bool kServiceHasOwnInstanceInIncognito = true;
static const bool kServiceIsNULLWhileTesting = true;
- // base::Bind supports methods with up to 6 parameters. ReceiveParams is used
- // as a workaround that limitation for invoking StartReceive.
- struct ReceiveParams {
- ReceiveParams();
- ~ReceiveParams();
+ // base::Bind supports methods with up to 6 parameters. SocketParams is used
+ // as a workaround that limitation for invoking StartReceive() and
+ // StartAccept().
+ struct SocketParams {
+ SocketParams();
+ ~SocketParams();
content::BrowserThread::ID thread_id;
void* browser_context_id;
@@ -65,21 +74,33 @@ class BluetoothSocketEventDispatcher
};
// Start a receive and register a callback.
- void StartSocketReceive(const std::string& extension_id, int socket_id);
- static void StartReceive(const ReceiveParams& params);
+ static void StartReceive(const SocketParams& params);
// Called when socket receive data.
- static void ReceiveCallback(const ReceiveParams& params,
+ static void ReceiveCallback(const SocketParams& params,
int bytes_read,
scoped_refptr<net::IOBuffer> io_buffer);
// Called when socket receive data.
- static void ReceiveErrorCallback(const ReceiveParams& params,
+ static void ReceiveErrorCallback(const SocketParams& params,
BluetoothApiSocket::ErrorReason error_reason,
const std::string& error);
+ // Start an accept and register a callback.
+ static void StartAccept(const SocketParams& params);
+
+ // Called when socket accepts a client connection.
+ static void AcceptCallback(const SocketParams& params,
+ const device::BluetoothDevice* device,
+ scoped_refptr<device::BluetoothSocket> socket);
+
+ // Called when socket encounters an error while accepting a client connection.
+ static void AcceptErrorCallback(const SocketParams& params,
+ BluetoothApiSocket::ErrorReason error_reason,
+ const std::string& error);
+
// Post an extension event from IO to UI thread
- static void PostEvent(const ReceiveParams& params, scoped_ptr<Event> event);
+ static void PostEvent(const SocketParams& params, scoped_ptr<Event> event);
// Dispatch an extension event on to EventRouter instance on UI thread.
static void DispatchEvent(void* browser_context_id,

Powered by Google App Engine
This is Rietveld 408576698