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); |
}; |