summaryrefslogtreecommitdiffstats
path: root/net/http/http_basic_stream.h
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-11 21:21:36 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-11 21:21:36 +0000
commit8d5a34e2b9853514b5fc5cb33be629f452e558eb (patch)
tree6218ea140d951443c8c2295fba8bbfd81699cc86 /net/http/http_basic_stream.h
parentead41699209ad7b0acdc911364f23c6655be4d3f (diff)
downloadchromium_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.h44
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_