Expose receive window size in QuicStream. Interface change only. Needed in Envoy to setup flow control buffer limit. PiperOrigin-RevId: 359284411 Change-Id: I692e59dfdda79fa504c177cd5ecc5e722d97b552
diff --git a/quic/core/quic_flow_controller.h b/quic/core/quic_flow_controller.h index 7266a9e..3998081 100644 --- a/quic/core/quic_flow_controller.h +++ b/quic/core/quic_flow_controller.h
@@ -77,6 +77,8 @@ // Returns the current available send window. QuicByteCount SendWindowSize() const; + QuicByteCount receive_window_size() const { return receive_window_size_; } + // Returns whether a BLOCKED frame should be sent. bool ShouldSendBlocked();
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc index f0dca44..b8ac8cc 100644 --- a/quic/core/quic_stream.cc +++ b/quic/core/quic_stream.cc
@@ -1439,4 +1439,11 @@ : absl::nullopt; } +absl::optional<QuicByteCount> QuicStream::GetReceiveWindow() const { + return flow_controller_.has_value() + ? absl::optional<QuicByteCount>( + flow_controller_->receive_window_size()) + : absl::nullopt; +} + } // namespace quic
diff --git a/quic/core/quic_stream.h b/quic/core/quic_stream.h index f3aa947..d89e460 100644 --- a/quic/core/quic_stream.h +++ b/quic/core/quic_stream.h
@@ -454,6 +454,7 @@ // Return the current flow control send window in bytes. absl::optional<QuicByteCount> GetSendWindow() const; + absl::optional<QuicByteCount> GetReceiveWindow() const; private: friend class test::QuicStreamPeer;