In quicsession, unify num_*_incoming_streams_ and num_*_outgoing_streams_. refactoring only, not protected. Also remove unused GetNumDrainingStreams, GetNumOpenDynamicStreams and GetNumDrainingOutgoingStreams. PiperOrigin-RevId: 314332362 Change-Id: Iccbc9cdf1bc7c2c5101de7de31d68a218e7d0901
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc index 27643c8..4e532de 100644 --- a/quic/core/http/quic_spdy_session.cc +++ b/quic/core/http/quic_spdy_session.cc
@@ -1076,11 +1076,8 @@ } bool QuicSpdySession::HasActiveRequestStreams() const { - DCHECK_GE(static_cast<size_t>(stream_map().size()), - num_incoming_static_streams() + num_outgoing_static_streams()); - return stream_map().size() - num_incoming_static_streams() - - num_outgoing_static_streams() > - 0; + DCHECK_GE(static_cast<size_t>(stream_map().size()), num_static_streams()); + return stream_map().size() - num_static_streams() > 0; } bool QuicSpdySession::ProcessPendingStream(PendingStream* pending) {
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc index 218384f..cdb8b31 100644 --- a/quic/core/quic_session.cc +++ b/quic/core/quic_session.cc
@@ -73,10 +73,8 @@ config_.GetMaxBidirectionalStreamsToSend(), config_.GetMaxUnidirectionalStreamsToSend() + num_expected_unidirectional_static_streams), - num_draining_incoming_streams_(0), - num_draining_outgoing_streams_(0), - num_outgoing_static_streams_(0), - num_incoming_static_streams_(0), + num_draining_streams_(0), + num_static_streams_(0), flow_controller_( this, QuicUtils::GetInvalidStreamId(connection->transport_version()), @@ -677,12 +675,6 @@ QuicUtils::GetCryptoStreamId(transport_version())); } -uint64_t QuicSession::GetNumOpenDynamicStreams() const { - return stream_map_.size() - GetNumDrainingStreams() + - locally_closed_streams_highest_offset_.size() - - num_incoming_static_streams_ - num_outgoing_static_streams_; -} - void QuicSession::ProcessUdpPacket(const QuicSocketAddress& self_address, const QuicSocketAddress& peer_address, const QuicReceivedPacket& packet) { @@ -911,13 +903,8 @@ << ENDPOINT << "Stream " << stream_id << " was draining"; stream_map_.erase(it); if (stream_was_draining) { - if (IsIncomingStream(stream_id)) { - QUIC_BUG_IF(num_draining_incoming_streams_ == 0); - --num_draining_incoming_streams_; - } else { - QUIC_BUG_IF(num_draining_outgoing_streams_ == 0); - --num_draining_outgoing_streams_; - } + QUIC_BUG_IF(num_draining_streams_ == 0); + --num_draining_streams_; // Stream Id manager has been informed with draining streams. return; } @@ -1565,8 +1552,7 @@ DCHECK(!QuicContainsKey(stream_map_, stream_id)); stream_map_[stream_id] = std::move(stream); if (is_static) { - IsIncomingStream(stream_id) ? ++num_incoming_static_streams_ - : ++num_outgoing_static_streams_; + ++num_static_streams_; return; } if (!VersionHasIetfQuicFrames(transport_version())) { @@ -1676,12 +1662,10 @@ stream_id_manager_.OnStreamClosed( /*is_incoming=*/IsIncomingStream(stream_id)); } - if (IsIncomingStream(stream_id)) { - ++num_draining_incoming_streams_; - return; + ++num_draining_streams_; + if (!IsIncomingStream(stream_id)) { + OnCanCreateNewOutgoingStream(unidirectional); } - ++num_draining_outgoing_streams_; - OnCanCreateNewOutgoingStream(unidirectional); } bool QuicSession::MaybeIncreaseLargestPeerStreamId( @@ -1806,12 +1790,7 @@ stream_id_manager_.num_open_outgoing_streams() - locally_closed_streams_highest_offset_.size(); } - return stream_map_.size() - GetNumDrainingStreams() - - num_incoming_static_streams_ - num_outgoing_static_streams_; -} - -size_t QuicSession::GetNumDrainingStreams() const { - return num_draining_incoming_streams_ + num_draining_outgoing_streams_; + return stream_map_.size() - num_draining_streams_ - num_static_streams_; } void QuicSession::MarkConnectionLevelWriteBlocked(QuicStreamId id) { @@ -1842,10 +1821,6 @@ control_frame_manager_.WritePing(); } -size_t QuicSession::GetNumDrainingOutgoingStreams() const { - return num_draining_outgoing_streams_; -} - bool QuicSession::IsConnectionFlowControlBlocked() const { return flow_controller_.IsBlocked(); }
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h index c156a6e..32aad51 100644 --- a/quic/core/quic_session.h +++ b/quic/core/quic_session.h
@@ -331,19 +331,6 @@ // never counting unfinished streams. size_t GetNumActiveStreams() const; - // Returns the number of currently draining streams. - size_t GetNumDrainingStreams() const; - - // Returns the number of open peer initiated static streams. - size_t num_incoming_static_streams() const { - return num_incoming_static_streams_; - } - - // Returns the number of open self initiated static streams. - size_t num_outgoing_static_streams() const { - return num_outgoing_static_streams_; - } - // Add the stream to the session's write-blocked list because it is blocked by // connection-level flow control but not by its own stream-level flow control. // The stream will be given a chance to write when a connection-level @@ -528,9 +515,6 @@ bool CanOpenNextOutgoingBidirectionalStream(); bool CanOpenNextOutgoingUnidirectionalStream(); - // Returns the number of open dynamic streams. - uint64_t GetNumOpenDynamicStreams() const; - // Returns the maximum bidirectional streams parameter sent with the handshake // as a transport parameter, or in the most recent MAX_STREAMS frame. QuicStreamCount GetAdvertisedMaxIncomingBidirectionalStreams() const; @@ -571,8 +555,6 @@ return &write_blocked_streams_; } - size_t GetNumDrainingOutgoingStreams() const; - // Returns true if the stream is still active. bool IsOpenStream(QuicStreamId id); @@ -610,6 +592,8 @@ QuicDatagramQueue* datagram_queue() { return &datagram_queue_; } + size_t num_static_streams() const { return num_static_streams_; } + // Processes the stream type information of |pending| depending on // different kinds of sessions' own rules. Returns true if the pending stream // is converted into a normal stream. @@ -750,25 +734,12 @@ // Manages stream IDs for version99/IETF QUIC UberQuicStreamIdManager v99_streamid_manager_; - // A counter for peer initiated streams which have sent and received FIN but - // waiting for application to consume data. - // TODO(fayang): Merge num_draining_incoming_streams_ and - // num_draining_outgoing_streams_. - size_t num_draining_incoming_streams_; + // A counter for streams which have sent and received FIN but waiting for + // application to consume data. + size_t num_draining_streams_; - // A counter for self initiated streams which have sent and received FIN but - // waiting for application to consume data. - size_t num_draining_outgoing_streams_; - - // A counter for self initiated static streams which are in - // stream_map_. - // TODO(fayang): Merge num_outgoing_static_streams_ and - // num_incoming_static_streams_. - size_t num_outgoing_static_streams_; - - // A counter for peer initiated static streams which are in - // stream_map_. - size_t num_incoming_static_streams_; + // A counter for static streams which are in stream_map_. + size_t num_static_streams_; // Received information for a connection close. QuicConnectionCloseFrame on_closed_frame_;
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc index 700931c..62ffae8 100644 --- a/quic/core/quic_stream_test.cc +++ b/quic/core/quic_stream_test.cc
@@ -750,7 +750,7 @@ nullptr); EXPECT_TRUE(stream_->write_side_closed()); - EXPECT_EQ(1u, session_->GetNumDrainingStreams()); + EXPECT_EQ(1u, QuicSessionPeer::GetNumDrainingStreams(session_.get())); EXPECT_EQ(0u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get())); } @@ -778,7 +778,7 @@ EXPECT_FALSE(QuicStreamPeer::read_side_closed(stream_)); EXPECT_FALSE(stream_->reading_stopped()); - EXPECT_EQ(1u, session_->GetNumDrainingStreams()); + EXPECT_EQ(1u, QuicSessionPeer::GetNumDrainingStreams(session_.get())); EXPECT_EQ(0u, QuicSessionPeer::GetNumOpenDynamicStreams(session_.get())); }
diff --git a/quic/qbone/qbone_client_session.cc b/quic/qbone/qbone_client_session.cc index 52ba763..98d8a51 100644 --- a/quic/qbone/qbone_client_session.cc +++ b/quic/qbone/qbone_client_session.cc
@@ -94,8 +94,7 @@ const ProofVerifyDetails& verify_details) {} bool QboneClientSession::HasActiveRequests() const { - return (stream_map().size() - num_incoming_static_streams() - - num_outgoing_static_streams()) > 0; + return (stream_map().size() - num_static_streams()) > 0; } } // namespace quic
diff --git a/quic/test_tools/quic_session_peer.cc b/quic/test_tools/quic_session_peer.cc index ab28828..ea9dc06 100644 --- a/quic/test_tools/quic_session_peer.cc +++ b/quic/test_tools/quic_session_peer.cc
@@ -242,12 +242,17 @@ } } // Exclude draining streams. - result -= session->GetNumDrainingStreams(); + result -= session->num_draining_streams_; // Add locally closed streams. result += session->locally_closed_streams_highest_offset_.size(); return result; } +// static +size_t QuicSessionPeer::GetNumDrainingStreams(QuicSession* session) { + return session->num_draining_streams_; +} + } // namespace test } // namespace quic
diff --git a/quic/test_tools/quic_session_peer.h b/quic/test_tools/quic_session_peer.h index ffb6a46..061f16d 100644 --- a/quic/test_tools/quic_session_peer.h +++ b/quic/test_tools/quic_session_peer.h
@@ -82,6 +82,7 @@ static void set_is_configured(QuicSession* session, bool value); static void SetPerspective(QuicSession* session, Perspective perspective); static size_t GetNumOpenDynamicStreams(QuicSession* session); + static size_t GetNumDrainingStreams(QuicSession* session); }; } // namespace test
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h index 3c311a1..51cc7bf 100644 --- a/quic/test_tools/quic_test_utils.h +++ b/quic/test_tools/quic_test_utils.h
@@ -801,7 +801,6 @@ MOCK_METHOD(void, OnAlpnSelected, (quiche::QuicheStringPiece), (override)); using QuicSession::ActivateStream; - using QuicSession::GetNumDrainingStreams; // Returns a QuicConsumedData that indicates all of |write_length| (and |fin| // if set) has been consumed.
diff --git a/quic/tools/quic_simple_server_session.cc b/quic/tools/quic_simple_server_session.cc index f84a248..595fda7 100644 --- a/quic/tools/quic_simple_server_session.cc +++ b/quic/tools/quic_simple_server_session.cc
@@ -243,9 +243,9 @@ } void QuicSimpleServerSession::MaybeInitializeHttp3UnidirectionalStreams() { - size_t previous_static_stream_count = num_outgoing_static_streams(); + size_t previous_static_stream_count = num_static_streams(); QuicSpdySession::MaybeInitializeHttp3UnidirectionalStreams(); - size_t current_static_stream_count = num_outgoing_static_streams(); + size_t current_static_stream_count = num_static_streams(); DCHECK_GE(current_static_stream_count, previous_static_stream_count); highest_promised_stream_id_ += QuicUtils::StreamIdDelta(transport_version()) *