blob: 0e71b45336e92087d92316111a95992e7254bef2 [file] [log] [blame]
[email protected]0877e3d2009-10-17 22:29:571// Copyright (c) 2006-2009 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/http/http_basic_stream.h"
6
[email protected]277d5942010-08-11 21:02:357#include "net/base/io_buffer.h"
8#include "net/base/net_errors.h"
9#include "net/http/http_stream_parser.h"
10
[email protected]0877e3d2009-10-17 22:29:5711namespace net {
12
[email protected]c638a85a2010-07-29 18:41:4013HttpBasicStream::HttpBasicStream(ClientSocketHandle* connection)
[email protected]0877e3d2009-10-17 22:29:5714 : read_buf_(new GrowableIOBuffer()),
[email protected]c638a85a2010-07-29 18:41:4015 connection_(connection) {
[email protected]0877e3d2009-10-17 22:29:5716}
17
[email protected]c638a85a2010-07-29 18:41:4018int HttpBasicStream::InitializeStream(const HttpRequestInfo* request_info,
19 const BoundNetLog& net_log,
20 CompletionCallback* callback) {
21 parser_.reset(new HttpStreamParser(connection_, request_info,
22 read_buf_, net_log));
23 connection_ = NULL;
24 return OK;
25}
26
27
28int HttpBasicStream::SendRequest(const std::string& headers,
[email protected]0877e3d2009-10-17 22:29:5729 UploadDataStream* request_body,
[email protected]a7e41312009-12-16 23:18:1430 HttpResponseInfo* response,
[email protected]0877e3d2009-10-17 22:29:5731 CompletionCallback* callback) {
[email protected]c638a85a2010-07-29 18:41:4032 DCHECK(parser_.get());
33 return parser_->SendRequest(headers, request_body, response, callback);
[email protected]0877e3d2009-10-17 22:29:5734}
35
[email protected]6d22a972010-07-21 15:47:1936HttpBasicStream::~HttpBasicStream() {}
37
[email protected]0877e3d2009-10-17 22:29:5738uint64 HttpBasicStream::GetUploadProgress() const {
39 return parser_->GetUploadProgress();
40}
41
42int HttpBasicStream::ReadResponseHeaders(CompletionCallback* callback) {
43 return parser_->ReadResponseHeaders(callback);
44}
45
[email protected]277d5942010-08-11 21:02:3546const HttpResponseInfo* HttpBasicStream::GetResponseInfo() const {
[email protected]0877e3d2009-10-17 22:29:5747 return parser_->GetResponseInfo();
48}
49
50int HttpBasicStream::ReadResponseBody(IOBuffer* buf, int buf_len,
51 CompletionCallback* callback) {
52 return parser_->ReadResponseBody(buf, buf_len, callback);
53}
54
55bool HttpBasicStream::IsResponseBodyComplete() const {
56 return parser_->IsResponseBodyComplete();
57}
58
59bool HttpBasicStream::CanFindEndOfResponse() const {
60 return parser_->CanFindEndOfResponse();
61}
62
63bool HttpBasicStream::IsMoreDataBuffered() const {
64 return parser_->IsMoreDataBuffered();
65}
66
67} // namespace net