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. 4 5 #include "net/test/embedded_test_server/http_connection.h" 6 7 #include "net/socket/stream_listen_socket.h" 8 #include "net/test/embedded_test_server/http_response.h" 9 10 namespace net { 11 namespace test_server { 12 HttpConnection(scoped_ptr<StreamListenSocket> socket,const HandleRequestCallback & callback)13HttpConnection::HttpConnection(scoped_ptr<StreamListenSocket> socket, 14 const HandleRequestCallback& callback) 15 : socket_(socket.Pass()), 16 callback_(callback) { 17 } 18 ~HttpConnection()19HttpConnection::~HttpConnection() { 20 } 21 SendResponse(scoped_ptr<HttpResponse> response) const22void 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()); 25 } 26 ReceiveData(const base::StringPiece & data)27void 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()); 31 } 32 } 33 34 } // namespace test_server 35 } // namespace net 36