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()));
 }