diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-17 22:29:57 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-17 22:29:57 +0000 |
commit | 0877e3db672aa26d89549f545e6e6c64904fec4c (patch) | |
tree | 127ce4a310fd137427c1963dc6eb02410bcb235d /net/http/http_basic_stream.h | |
parent | b71e79d427311fdd9ec36ac5a122fc987bdb2020 (diff) | |
download | chromium_src-0877e3db672aa26d89549f545e6e6c64904fec4c.zip chromium_src-0877e3db672aa26d89549f545e6e6c64904fec4c.tar.gz chromium_src-0877e3db672aa26d89549f545e6e6c64904fec4c.tar.bz2 |
Refactor HttpNetworkTransaction so that HttpStream is responsible for parsing the Http traffic. HttpBasicStream delegates parsing to HttpStreamParser in preparation for HttpPipelinedStream.
Original review: http://codereview.chromium.org/249031
BUG=13289
TEST=unittests
Review URL: http://codereview.chromium.org/283022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29379 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_basic_stream.h')
-rw-r--r-- | net/http/http_basic_stream.h | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/net/http/http_basic_stream.h b/net/http/http_basic_stream.h index 2a82b7a..1b1f68a 100644 --- a/net/http/http_basic_stream.h +++ b/net/http/http_basic_stream.h @@ -9,32 +9,50 @@ #ifndef NET_HTTP_HTTP_BASIC_STREAM_H_ #define NET_HTTP_HTTP_BASIC_STREAM_H_ +#include <string> + #include "base/basictypes.h" +#include "net/base/io_buffer.h" #include "net/http/http_stream.h" -#include "net/socket/client_socket_handle.h" +#include "net/http/http_stream_parser.h" namespace net { +class ClientSocketHandle; +class HttpRequestInfo; +class HttpResponseInfo; +class UploadDataStream; + class HttpBasicStream : public HttpStream { public: - explicit HttpBasicStream(ClientSocketHandle* handle) : handle_(handle) {} + explicit HttpBasicStream(ClientSocketHandle* handle); virtual ~HttpBasicStream() {} // HttpStream methods: - virtual int Read(IOBuffer* buf, - int buf_len, - CompletionCallback* callback) { - return handle_->socket()->Read(buf, buf_len, callback); - } - - virtual int Write(IOBuffer* buf, - int buf_len, - CompletionCallback* callback) { - return handle_->socket()->Write(buf, buf_len, callback); - } + virtual int SendRequest(const HttpRequestInfo* request, + const std::string& headers, + UploadDataStream* request_body, + CompletionCallback* callback); + + virtual uint64 GetUploadProgress() const; + + virtual int ReadResponseHeaders(CompletionCallback* callback); + + virtual HttpResponseInfo* GetResponseInfo() const; + + virtual int ReadResponseBody(IOBuffer* buf, int buf_len, + CompletionCallback* callback); + + virtual bool IsResponseBodyComplete() const; + + virtual bool CanFindEndOfResponse() const; + + virtual bool IsMoreDataBuffered() const; private: - ClientSocketHandle* const handle_; + scoped_refptr<GrowableIOBuffer> read_buf_; + + scoped_ptr<HttpStreamParser> parser_; DISALLOW_COPY_AND_ASSIGN(HttpBasicStream); }; |