Chromium Code Reviews| Index: net/server/http_server.h |
| diff --git a/net/server/http_server.h b/net/server/http_server.h |
| index 4309d122f1ead040eb28f2c2557a489b9fbff1b6..4ac648b473702fa339a50aa3a93e1f6b79a3dcc3 100644 |
| --- a/net/server/http_server.h |
| +++ b/net/server/http_server.h |
| @@ -5,13 +5,12 @@ |
| #ifndef NET_SERVER_HTTP_SERVER_H_ |
| #define NET_SERVER_HTTP_SERVER_H_ |
| -#include <list> |
| #include <map> |
| +#include <string> |
| -#include "base/basictypes.h" |
| +#include "base/macros.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "net/http/http_status_code.h" |
| -#include "net/socket/stream_listen_socket.h" |
| namespace net { |
| @@ -19,10 +18,11 @@ class HttpConnection; |
| class HttpServerRequestInfo; |
| class HttpServerResponseInfo; |
| class IPEndPoint; |
| +class ServerSocket; |
| +class StreamSocket; |
| class WebSocket; |
| -class HttpServer : public StreamListenSocket::Delegate, |
| - public base::RefCountedThreadSafe<HttpServer> { |
| +class HttpServer { |
| public: |
| class Delegate { |
| public: |
| @@ -36,13 +36,11 @@ class HttpServer : public StreamListenSocket::Delegate, |
| const std::string& data) = 0; |
| virtual void OnClose(int connection_id) = 0; |
| - |
| - protected: |
| - virtual ~Delegate() {} |
| }; |
| - HttpServer(const StreamListenSocketFactory& socket_factory, |
| + HttpServer(scoped_ptr<ServerSocket> server_socket, |
| HttpServer::Delegate* delegate); |
| + ~HttpServer(); |
| void AcceptWebSocket(int connection_id, |
| const HttpServerRequestInfo& request); |
| @@ -64,40 +62,45 @@ class HttpServer : public StreamListenSocket::Delegate, |
| void Close(int connection_id); |
| + void SetReceiveBufferSize(int connection_id, int32 size); |
|
mmenke
2014/07/24 20:50:09
This seems kinda weird - we don't even tell the De
byungchul
2014/08/05 07:06:20
It could be called on AcceptWebSocket().
|
| + void SetSendBufferSize(int connection_id, int32 size); |
| + |
| // Copies the local address to |address|. Returns a network error code. |
| int GetLocalAddress(IPEndPoint* address); |
| - // ListenSocketDelegate |
| - virtual void DidAccept(StreamListenSocket* server, |
| - scoped_ptr<StreamListenSocket> socket) OVERRIDE; |
| - virtual void DidRead(StreamListenSocket* socket, |
| - const char* data, |
| - int len) OVERRIDE; |
| - virtual void DidClose(StreamListenSocket* socket) OVERRIDE; |
| + private: |
| + friend class HttpServerTest; |
| - protected: |
| - virtual ~HttpServer(); |
| + typedef std::map<int, HttpConnection*> IdToConnectionMap; |
| - private: |
| - friend class base::RefCountedThreadSafe<HttpServer>; |
| - friend class HttpConnection; |
| + void DoAcceptLoop(); |
| + void OnAcceptCompleted(int rv); |
| + int DidAccept(int rv); |
| + |
| + void DoReadLoop(HttpConnection* connection); |
| + void OnReadCompleted(int connection_id, int rv); |
| + int DidRead(HttpConnection* conn, int rv); |
| + |
| + void DoWriteLoop(HttpConnection* connection); |
| + void OnWriteCompleted(int connection_id, int rv); |
| + int DidWrite(HttpConnection* conn, int rv); |
| // Expects the raw data to be stored in recv_data_. If parsing is successful, |
| // will remove the data parsed from recv_data_, leaving only the unused |
| // recv data. |
| - bool ParseHeaders(HttpConnection* connection, |
| + bool ParseHeaders(const char* data, |
| + size_t data_len, |
| HttpServerRequestInfo* info, |
| size_t* pos); |
| HttpConnection* FindConnection(int connection_id); |
| - HttpConnection* FindConnection(StreamListenSocket* socket); |
| - HttpServer::Delegate* delegate_; |
| - scoped_ptr<StreamListenSocket> server_; |
| - typedef std::map<int, HttpConnection*> IdToConnectionMap; |
| + const scoped_ptr<ServerSocket> server_socket_; |
| + scoped_ptr<StreamSocket> accepted_socket_; |
| + HttpServer::Delegate* const delegate_; |
| + |
| + int last_id_; |
| IdToConnectionMap id_to_connection_; |
| - typedef std::map<StreamListenSocket*, HttpConnection*> SocketToConnectionMap; |
| - SocketToConnectionMap socket_to_connection_; |
| DISALLOW_COPY_AND_ASSIGN(HttpServer); |
| }; |