summaryrefslogtreecommitdiffstats
path: root/net/http/http_basic_stream.h
diff options
context:
space:
mode:
authorvandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-17 22:29:57 +0000
committervandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-17 22:29:57 +0000
commit0877e3db672aa26d89549f545e6e6c64904fec4c (patch)
tree127ce4a310fd137427c1963dc6eb02410bcb235d /net/http/http_basic_stream.h
parentb71e79d427311fdd9ec36ac5a122fc987bdb2020 (diff)
downloadchromium_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.h46
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);
};