root/net/test/embedded_test_server/http_connection.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. callback_
  2. SendResponse
  3. ReceiveData

// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "net/test/embedded_test_server/http_connection.h"

#include "net/socket/stream_listen_socket.h"
#include "net/test/embedded_test_server/http_response.h"

namespace net {
namespace test_server {

HttpConnection::HttpConnection(scoped_ptr<StreamListenSocket> socket,
                               const HandleRequestCallback& callback)
    : socket_(socket.Pass()),
      callback_(callback) {
}

HttpConnection::~HttpConnection() {
}

void HttpConnection::SendResponse(scoped_ptr<HttpResponse> response) const {
  const std::string response_string = response->ToResponseString();
  socket_->Send(response_string.c_str(), response_string.length());
}

void HttpConnection::ReceiveData(const base::StringPiece& data) {
  request_parser_.ProcessChunk(data);
  if (request_parser_.ParseRequest() == HttpRequestParser::ACCEPTED) {
    callback_.Run(this, request_parser_.GetRequest());
  }
}

}  // namespace test_server
}  // namespace net

/* [<][>][^][v][top][bottom][index][help] */