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;