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