| 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_
 | 
| 
 |