Index: net/spdy/spdy_http_stream.h |
diff --git a/net/spdy/spdy_http_stream.h b/net/spdy/spdy_http_stream.h |
deleted file mode 100644 |
index 8b7a82d7d27147d8be7842f2aefb8ad473321c85..0000000000000000000000000000000000000000 |
--- a/net/spdy/spdy_http_stream.h |
+++ /dev/null |
@@ -1,208 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-#ifndef NET_SPDY_SPDY_HTTP_STREAM_H_ |
-#define NET_SPDY_SPDY_HTTP_STREAM_H_ |
- |
-#include <stdint.h> |
- |
-#include <list> |
- |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/weak_ptr.h" |
-#include "net/base/completion_callback.h" |
-#include "net/base/net_export.h" |
-#include "net/log/net_log_source.h" |
-#include "net/spdy/multiplexed_http_stream.h" |
-#include "net/spdy/spdy_read_queue.h" |
-#include "net/spdy/spdy_session.h" |
-#include "net/spdy/spdy_stream.h" |
- |
-namespace net { |
- |
-struct HttpRequestInfo; |
-class HttpResponseInfo; |
-class IOBuffer; |
-class SpdySession; |
-class UploadDataStream; |
- |
-// The SpdyHttpStream is a HTTP-specific type of stream known to a SpdySession. |
-class NET_EXPORT_PRIVATE SpdyHttpStream : public SpdyStream::Delegate, |
- public MultiplexedHttpStream { |
- public: |
- static const size_t kRequestBodyBufferSize; |
- // |spdy_session| must not be NULL. |
- SpdyHttpStream(const base::WeakPtr<SpdySession>& spdy_session, |
- bool direct, |
- NetLogSource source_dependency); |
- ~SpdyHttpStream() override; |
- |
- SpdyStream* stream() { return stream_; } |
- |
- // Cancels any callbacks from being invoked and deletes the stream. |
- void Cancel(); |
- |
- // HttpStream implementation. |
- |
- int InitializeStream(const HttpRequestInfo* request_info, |
- RequestPriority priority, |
- const NetLogWithSource& net_log, |
- const CompletionCallback& callback) override; |
- |
- int SendRequest(const HttpRequestHeaders& headers, |
- HttpResponseInfo* response, |
- const CompletionCallback& callback) override; |
- int ReadResponseHeaders(const CompletionCallback& callback) override; |
- int ReadResponseBody(IOBuffer* buf, |
- int buf_len, |
- const CompletionCallback& callback) override; |
- void Close(bool not_reusable) override; |
- bool IsResponseBodyComplete() const override; |
- |
- // Must not be called if a NULL SpdySession was pssed into the |
- // constructor. |
- bool IsConnectionReused() const override; |
- |
- // Total number of bytes received over the network of SPDY data, headers, and |
- // push_promise frames associated with this stream, including the size of |
- // frame headers, after SSL decryption and not including proxy overhead. |
- int64_t GetTotalReceivedBytes() const override; |
- // Total number of bytes sent over the network of SPDY frames associated with |
- // this stream, including the size of frame headers, before SSL encryption and |
- // not including proxy overhead. Note that some SPDY frames such as pings are |
- // not associated with any stream, and are not included in this value. |
- int64_t GetTotalSentBytes() const override; |
- bool GetAlternativeService( |
- AlternativeService* alternative_service) const override; |
- bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const override; |
- bool GetRemoteEndpoint(IPEndPoint* endpoint) override; |
- void PopulateNetErrorDetails(NetErrorDetails* details) override; |
- void SetPriority(RequestPriority priority) override; |
- |
- // SpdyStream::Delegate implementation. |
- void OnHeadersSent() override; |
- void OnHeadersReceived(const SpdyHeaderBlock& response_headers) override; |
- void OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) override; |
- void OnDataSent() override; |
- void OnTrailers(const SpdyHeaderBlock& trailers) override; |
- void OnClose(int status) override; |
- NetLogSource source_dependency() const override; |
- |
- private: |
- // Helper function used to initialize private members and to set delegate on |
- // stream when stream is created. |
- void InitializeStreamHelper(); |
- |
- // Helper function used for resetting stream from inside the stream. |
- void ResetStreamInternal(); |
- |
- // Must be called only when |request_info_| is non-NULL. |
- bool HasUploadData() const; |
- |
- void OnStreamCreated(const CompletionCallback& callback, int rv); |
- |
- // Reads the remaining data (whether chunked or not) from the |
- // request body stream and sends it if there's any. The read and |
- // subsequent sending may happen asynchronously. Must be called only |
- // when HasUploadData() is true. |
- void ReadAndSendRequestBodyData(); |
- |
- // Called when data has just been read from the request body stream; |
- // does the actual sending of data. |
- void OnRequestBodyReadCompleted(int status); |
- |
- // Call the user callback associated with sending the request. |
- void DoRequestCallback(int rv); |
- |
- // Method to PostTask for calling request callback asynchronously. |
- void MaybeDoRequestCallback(int rv); |
- |
- // Post the request callback if not null. |
- // This is necessary because the request callback might destroy |stream_|, |
- // which does not support that. |
- void MaybePostRequestCallback(int rv); |
- |
- // Call the user callback associated with reading the response. |
- void DoResponseCallback(int rv); |
- |
- void ScheduleBufferedReadCallback(); |
- void DoBufferedReadCallback(); |
- bool ShouldWaitForMoreBufferedData() const; |
- |
- const base::WeakPtr<SpdySession> spdy_session_; |
- bool is_reused_; |
- SpdyStreamRequest stream_request_; |
- const NetLogSource source_dependency_; |
- |
- // |stream_| is owned by SpdySession. |
- // Before InitializeStream() is called, stream_ == nullptr. |
- // After InitializeStream() is called but before OnClose() is called, |
- // |*stream_| is guaranteed to be valid. |
- // After OnClose() is called, stream_ == nullptr. |
- SpdyStream* stream_; |
- |
- // False before OnClose() is called, true after. |
- bool stream_closed_; |
- |
- // Set only when |stream_closed_| is true. |
- int closed_stream_status_; |
- SpdyStreamId closed_stream_id_; |
- bool closed_stream_has_load_timing_info_; |
- LoadTimingInfo closed_stream_load_timing_info_; |
- // After |stream_| has been closed, this keeps track of the total number of |
- // bytes received over the network for |stream_| while it was open. |
- int64_t closed_stream_received_bytes_; |
- // After |stream_| has been closed, this keeps track of the total number of |
- // bytes sent over the network for |stream_| while it was open. |
- int64_t closed_stream_sent_bytes_; |
- |
- // The request to send. |
- // Set to null when response body is starting to be read. This is to allow |
- // the stream to be shared for reading and to possibly outlive request_info_'s |
- // owner. |
- const HttpRequestInfo* request_info_; |
- |
- // |response_info_| is the HTTP response data object which is filled in |
- // when a response HEADERS comes in for the stream. |
- // It is not owned by this stream object, or point to |push_response_info_|. |
- HttpResponseInfo* response_info_; |
- |
- std::unique_ptr<HttpResponseInfo> push_response_info_; |
- |
- bool response_headers_complete_; |
- |
- // We buffer the response body as it arrives asynchronously from the stream. |
- SpdyReadQueue response_body_queue_; |
- |
- CompletionCallback request_callback_; |
- CompletionCallback response_callback_; |
- |
- // User provided buffer for the ReadResponseBody() response. |
- scoped_refptr<IOBuffer> user_buffer_; |
- int user_buffer_len_; |
- |
- // Temporary buffer used to read the request body from UploadDataStream. |
- scoped_refptr<IOBufferWithSize> request_body_buf_; |
- int request_body_buf_size_; |
- |
- // Is there a scheduled read callback pending. |
- bool buffered_read_callback_pending_; |
- // Has more data been received from the network during the wait for the |
- // scheduled read callback. |
- bool more_read_data_pending_; |
- |
- // Is this spdy stream direct to the origin server (or to a proxy). |
- bool direct_; |
- |
- bool was_alpn_negotiated_; |
- |
- base::WeakPtrFactory<SpdyHttpStream> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SpdyHttpStream); |
-}; |
- |
-} // namespace net |
- |
-#endif // NET_SPDY_SPDY_HTTP_STREAM_H_ |