1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "net/test/embedded_test_server/http_connection.h"
7 #include "net/socket/stream_listen_socket.h"
8 #include "net/test/embedded_test_server/http_response.h"
11 namespace test_server
{
13 HttpConnection::HttpConnection(scoped_ptr
<StreamListenSocket
> socket
,
14 const HandleRequestCallback
& callback
)
15 : socket_(socket
.Pass()),
19 HttpConnection::~HttpConnection() {
22 void HttpConnection::SendResponse(scoped_ptr
<HttpResponse
> response
) const {
23 const std::string response_string
= response
->ToResponseString();
24 socket_
->Send(response_string
.c_str(), response_string
.length());
27 void HttpConnection::ReceiveData(const base::StringPiece
& data
) {
28 request_parser_
.ProcessChunk(data
);
29 if (request_parser_
.ParseRequest() == HttpRequestParser::ACCEPTED
) {
30 callback_
.Run(this, request_parser_
.GetRequest());
34 } // namespace test_server