Index: net/http/http_pipelined_stream.h |
diff --git a/net/http/http_basic_stream.h b/net/http/http_pipelined_stream.h |
similarity index 60% |
copy from net/http/http_basic_stream.h |
copy to net/http/http_pipelined_stream.h |
index 3b38b93f8aa2c524c92a17a9e10218582e9b9456..dfafe690be80a5632cc2f1a0faa53cc558ede994 100644 |
--- a/net/http/http_basic_stream.h |
+++ b/net/http/http_pipelined_stream.h |
@@ -1,43 +1,43 @@ |
// Copyright (c) 2011 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_ |
+#ifndef NET_HTTP_HTTP_PIPELINED_STREAM_H_ |
+#define NET_HTTP_HTTP_PIPELINED_STREAM_H_ |
#pragma once |
#include <string> |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
+#include "net/base/net_log.h" |
#include "net/http/http_stream.h" |
namespace net { |
class BoundNetLog; |
-class ClientSocketHandle; |
-class GrowableIOBuffer; |
+class HttpPipelinedConnectionImpl; |
class HttpResponseInfo; |
-struct HttpRequestInfo; |
class HttpRequestHeaders; |
+struct HttpRequestInfo; |
class HttpStreamParser; |
class IOBuffer; |
+class ProxyInfo; |
+struct SSLConfig; |
class UploadDataStream; |
-class HttpBasicStream : public HttpStream { |
+// HttpPipelinedStream is the pipelined implementation of HttpStream. It has |
+// very little code in it. Instead, it serves as the client's interface to the |
+// pipelined connection, where all the work happens. |
+// |
+// In the case of pipelining failures, these functions may return |
+// ERR_PIPELINE_EVICTION. In that case, the client should retry the HTTP |
+// request without pipelining. |
+class HttpPipelinedStream : public HttpStream { |
public: |
- // Constructs a new HttpBasicStream. If |parser| is NULL, then |
- // InitializeStream should be called to initialize it correctly. If |
- // |parser| is non-null, then InitializeStream should not be called, |
- // as the stream is already initialized. |
- HttpBasicStream(ClientSocketHandle* connection, |
- HttpStreamParser* parser, |
- bool using_proxy); |
- virtual ~HttpBasicStream(); |
+ HttpPipelinedStream(HttpPipelinedConnectionImpl* pipeline, |
+ int pipeline_id); |
+ virtual ~HttpPipelinedStream(); |
// HttpStream methods: |
virtual int InitializeStream(const HttpRequestInfo* request_info, |
@@ -83,26 +83,30 @@ class HttpBasicStream : public HttpStream { |
virtual void LogNumRttVsBytesMetrics() const OVERRIDE; |
- private: |
- scoped_refptr<GrowableIOBuffer> read_buf_; |
+ virtual void Drain(HttpNetworkSession* session) OVERRIDE; |
- scoped_ptr<HttpStreamParser> parser_; |
+ // The SSLConfig used to establish this stream's pipeline. |
+ const SSLConfig& used_ssl_config() const; |
- scoped_ptr<ClientSocketHandle> connection_; |
+ // The ProxyInfo used to establish this this stream's pipeline. |
+ const ProxyInfo& used_proxy_info() const; |
- bool using_proxy_; |
+ // The source of this stream's pipelined connection. |
+ const NetLog::Source& source() const; |
- std::string request_line_; |
+ // True if this stream's pipeline was NPN negotiated. |
+ bool was_npn_negotiated() const; |
- const HttpRequestInfo* request_info_; |
+ private: |
+ HttpPipelinedConnectionImpl* pipeline_; |
- const HttpResponseInfo* response_; |
+ int pipeline_id_; |
- int64 bytes_read_offset_; |
+ const HttpRequestInfo* request_info_; |
- DISALLOW_COPY_AND_ASSIGN(HttpBasicStream); |
+ DISALLOW_COPY_AND_ASSIGN(HttpPipelinedStream); |
}; |
} // namespace net |
-#endif // NET_HTTP_HTTP_BASIC_STREAM_H_ |
+#endif // NET_HTTP_HTTP_PIPELINED_STREAM_H_ |