| Index: chrome/browser/extensions/api/socket/tcp_socket.h
|
| diff --git a/chrome/browser/extensions/api/socket/tcp_socket.h b/chrome/browser/extensions/api/socket/tcp_socket.h
|
| index fc0922bcbdb565a209a9c0d181a4ea670ae94ebc..6e69c633772c60977479ddddf11e361767fa322b 100644
|
| --- a/chrome/browser/extensions/api/socket/tcp_socket.h
|
| +++ b/chrome/browser/extensions/api/socket/tcp_socket.h
|
| @@ -12,6 +12,7 @@
|
| // This looks like it should be forward-declarable, but it does some tricky
|
| // moves that make it easier to just include it.
|
| #include "net/socket/tcp_client_socket.h"
|
| +#include "net/socket/tcp_server_socket.h"
|
|
|
| namespace net {
|
| class Socket;
|
| @@ -25,6 +26,11 @@ class TCPSocket : public Socket {
|
| public:
|
| TCPSocket(const std::string& owner_extension_id,
|
| ApiResourceEventNotifier* event_notifier);
|
| + TCPSocket(net::TCPClientSocket* tcp_client_socket,
|
| + const std::string& owner_extension_id,
|
| + ApiResourceEventNotifier* event_notifier,
|
| + bool is_connected = false);
|
| +
|
| virtual ~TCPSocket();
|
|
|
| virtual void Connect(const std::string& address,
|
| @@ -43,6 +49,9 @@ class TCPSocket : public Socket {
|
| const CompletionCallback& callback) OVERRIDE;
|
| virtual bool SetKeepAlive(bool enable, int delay) OVERRIDE;
|
| virtual bool SetNoDelay(bool no_delay) OVERRIDE;
|
| + virtual int Listen(int backlog, std::string* error_msg) OVERRIDE;
|
| + virtual void Accept(const AcceptCompletionCallback &callback) OVERRIDE;
|
| +
|
| virtual bool GetPeerAddress(net::IPEndPoint* address) OVERRIDE;
|
| virtual bool GetLocalAddress(net::IPEndPoint* address) OVERRIDE;
|
| virtual Socket::SocketType GetSocketType() const OVERRIDE;
|
| @@ -51,6 +60,9 @@ class TCPSocket : public Socket {
|
| net::TCPClientSocket* tcp_client_socket,
|
| const std::string& owner_extension_id,
|
| ApiResourceEventNotifier* event_notifier);
|
| + static TCPSocket* CreateServerSocketForTesting(
|
| + net::TCPServerSocket* tcp_server_socket,
|
| + const std::string& owner_extension_id);
|
|
|
| protected:
|
| virtual int WriteImpl(net::IOBuffer* io_buffer,
|
| @@ -61,16 +73,28 @@ class TCPSocket : public Socket {
|
| void OnConnectComplete(int result);
|
| void OnReadComplete(scoped_refptr<net::IOBuffer> io_buffer,
|
| int result);
|
| + void OnAccept(int result);
|
|
|
| - TCPSocket(net::TCPClientSocket* tcp_client_socket,
|
| - const std::string& owner_extension_id,
|
| - ApiResourceEventNotifier* event_notifier);
|
| + TCPSocket(net::TCPServerSocket* tcp_server_socket,
|
| + const std::string& owner_extension_id);
|
|
|
| scoped_ptr<net::TCPClientSocket> socket_;
|
| + scoped_ptr<net::TCPServerSocket> server_socket_;
|
| + scoped_ptr<net::IPEndPoint> bind_address_;
|
| +
|
| + enum SocketMode {
|
| + UNKNOWN = 0,
|
| + CLIENT,
|
| + SERVER,
|
| + };
|
| + SocketMode socket_mode_;
|
|
|
| CompletionCallback connect_callback_;
|
|
|
| ReadCompletionCallback read_callback_;
|
| +
|
| + scoped_ptr<net::StreamSocket> accept_socket_;
|
| + AcceptCompletionCallback accept_callback_;
|
| };
|
|
|
| } // namespace extensions
|
|
|