diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-11 21:21:36 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-11 21:21:36 +0000 |
commit | 8d5a34e2b9853514b5fc5cb33be629f452e558eb (patch) | |
tree | 6218ea140d951443c8c2295fba8bbfd81699cc86 /net/http/http_basic_stream.h | |
parent | ead41699209ad7b0acdc911364f23c6655be4d3f (diff) | |
download | chromium_src-8d5a34e2b9853514b5fc5cb33be629f452e558eb.zip chromium_src-8d5a34e2b9853514b5fc5cb33be629f452e558eb.tar.gz chromium_src-8d5a34e2b9853514b5fc5cb33be629f452e558eb.tar.bz2 |
Introduce HttpStream and HttpBasicStream.
This is the beginning of the http pipelining work. Introduce HttpStream, an interface for reading and writing to http streams. Provide a basic implementation with HttpBasicStream. Switch HttpNetworkTransaction to reading/writing via HttpStream rather than directly to the socket.
Note that the interface will have to change later on. Read/Write() is the wrong interface, since a pipelining HttpStream implementation will have to detect the end of an http response, rather than having the client (HttpNetworkTransaction) do that. This is just the first step.
For information of the general roadmap for http pipelining, please refer to the bug.
BUG=http://crbug.com/8991
TEST=none
Review URL: http://codereview.chromium.org/119346
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18199 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_basic_stream.h')
-rw-r--r-- | net/http/http_basic_stream.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/net/http/http_basic_stream.h b/net/http/http_basic_stream.h new file mode 100644 index 0000000..32f1b8a --- /dev/null +++ b/net/http/http_basic_stream.h @@ -0,0 +1,44 @@ +// Copyright (c) 2009 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. +// +// HttpBasicStream is a simple implementation of HttpStream. It assumes it is +// not sharing a sharing with any other HttpStreams, therefore it just reads and +// writes directly to the Http Stream. + +#ifndef NET_HTTP_HTTP_BASIC_STREAM_H_ +#define NET_HTTP_HTTP_BASIC_STREAM_H_ + +#include "base/basictypes.h" +#include "net/base/client_socket_handle.h" +#include "net/http/http_stream.h" + +namespace net { + +class HttpBasicStream : public HttpStream { + public: + explicit HttpBasicStream(ClientSocketHandle* handle) : handle_(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); + } + + private: + ClientSocketHandle* const handle_; + + DISALLOW_COPY_AND_ASSIGN(HttpBasicStream); +}; + +} // namespace net + +#endif // NET_HTTP_HTTP_BASIC_STREAM_H_ |