| Index: net/quic/quic_data_stream.cc
|
| diff --git a/net/quic/quic_data_stream.cc b/net/quic/quic_data_stream.cc
|
| deleted file mode 100644
|
| index 5b1cea45932dc47f55a95c795feac0130134d04a..0000000000000000000000000000000000000000
|
| --- a/net/quic/quic_data_stream.cc
|
| +++ /dev/null
|
| @@ -1,137 +0,0 @@
|
| -// Copyright 2013 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.
|
| -
|
| -#include "net/quic/quic_data_stream.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "net/quic/quic_spdy_session.h"
|
| -#include "net/quic/quic_utils.h"
|
| -#include "net/quic/quic_write_blocked_list.h"
|
| -
|
| -using base::StringPiece;
|
| -using std::min;
|
| -
|
| -namespace net {
|
| -
|
| -#define ENDPOINT \
|
| - (session()->perspective() == Perspective::IS_SERVER ? "Server: " : "Client:" \
|
| - " ")
|
| -
|
| -namespace {
|
| -
|
| -// This is somewhat arbitrary. It's possible, but unlikely, we will either fail
|
| -// to set a priority client-side, or cancel a stream before stripping the
|
| -// priority from the wire server-side. In either case, start out with a
|
| -// priority in the middle.
|
| -QuicPriority kDefaultPriority = 3;
|
| -
|
| -} // namespace
|
| -
|
| -QuicDataStream::QuicDataStream(QuicStreamId id, QuicSpdySession* spdy_session)
|
| - : ReliableQuicStream(id, spdy_session),
|
| - spdy_session_(spdy_session),
|
| - visitor_(nullptr),
|
| - headers_decompressed_(false),
|
| - priority_(kDefaultPriority) {
|
| - DCHECK_NE(kCryptoStreamId, id);
|
| - // Don't receive any callbacks from the sequencer until headers
|
| - // are complete.
|
| - sequencer()->SetBlockedUntilFlush();
|
| -}
|
| -
|
| -QuicDataStream::~QuicDataStream() {
|
| -}
|
| -
|
| -size_t QuicDataStream::WriteHeaders(
|
| - const SpdyHeaderBlock& header_block,
|
| - bool fin,
|
| - QuicAckListenerInterface* ack_notifier_delegate) {
|
| - size_t bytes_written = spdy_session_->WriteHeaders(
|
| - id(), header_block, fin, priority_, ack_notifier_delegate);
|
| - if (fin) {
|
| - // TODO(rch): Add test to ensure fin_sent_ is set whenever a fin is sent.
|
| - set_fin_sent(true);
|
| - CloseWriteSide();
|
| - }
|
| - return bytes_written;
|
| -}
|
| -
|
| -size_t QuicDataStream::Readv(const struct iovec* iov, size_t iov_len) {
|
| - DCHECK(FinishedReadingHeaders());
|
| - return sequencer()->Readv(iov, iov_len);
|
| -}
|
| -
|
| -int QuicDataStream::GetReadableRegions(iovec* iov, size_t iov_len) const {
|
| - DCHECK(FinishedReadingHeaders());
|
| - return sequencer()->GetReadableRegions(iov, iov_len);
|
| -}
|
| -
|
| -void QuicDataStream::MarkConsumed(size_t num_bytes) {
|
| - DCHECK(FinishedReadingHeaders());
|
| - return sequencer()->MarkConsumed(num_bytes);
|
| -}
|
| -
|
| -bool QuicDataStream::IsDoneReading() const {
|
| - if (!headers_decompressed_ || !decompressed_headers_.empty()) {
|
| - return false;
|
| - }
|
| - return sequencer()->IsClosed();
|
| -}
|
| -
|
| -bool QuicDataStream::HasBytesToRead() const {
|
| - return !decompressed_headers_.empty() || sequencer()->HasBytesToRead();
|
| -}
|
| -
|
| -void QuicDataStream::MarkHeadersConsumed(size_t bytes_consumed) {
|
| - decompressed_headers_.erase(0, bytes_consumed);
|
| - if (FinishedReadingHeaders()) {
|
| - sequencer()->SetUnblocked();
|
| - }
|
| -}
|
| -
|
| -void QuicDataStream::set_priority(QuicPriority priority) {
|
| - DCHECK_EQ(0u, stream_bytes_written());
|
| - priority_ = priority;
|
| -}
|
| -
|
| -QuicPriority QuicDataStream::EffectivePriority() const {
|
| - return priority();
|
| -}
|
| -
|
| -void QuicDataStream::OnStreamHeaders(StringPiece headers_data) {
|
| - headers_data.AppendToString(&decompressed_headers_);
|
| -}
|
| -
|
| -void QuicDataStream::OnStreamHeadersPriority(QuicPriority priority) {
|
| - DCHECK_EQ(Perspective::IS_SERVER, session()->connection()->perspective());
|
| - set_priority(priority);
|
| -}
|
| -
|
| -void QuicDataStream::OnStreamHeadersComplete(bool fin, size_t frame_len) {
|
| - headers_decompressed_ = true;
|
| - if (fin) {
|
| - OnStreamFrame(QuicStreamFrame(id(), fin, 0, StringPiece()));
|
| - }
|
| - if (FinishedReadingHeaders()) {
|
| - sequencer()->SetUnblocked();
|
| - }
|
| -}
|
| -
|
| -void QuicDataStream::OnClose() {
|
| - ReliableQuicStream::OnClose();
|
| -
|
| - if (visitor_) {
|
| - Visitor* visitor = visitor_;
|
| - // Calling Visitor::OnClose() may result the destruction of the visitor,
|
| - // so we need to ensure we don't call it again.
|
| - visitor_ = nullptr;
|
| - visitor->OnClose(this);
|
| - }
|
| -}
|
| -
|
| -bool QuicDataStream::FinishedReadingHeaders() const {
|
| - return headers_decompressed_ && decompressed_headers_.empty();
|
| -}
|
| -
|
| -} // namespace net
|
|
|