Expose Quic stream flow control send window to subclasses.
Needed by Envoy to set high/low watermarks for quic stream send buffer.
PiperOrigin-RevId: 358488695
Change-Id: I673366e1d4d94f5432e7e980d0d344d2a7b8ec7d
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc
index 14ce157..f0dca44 100644
--- a/quic/core/quic_stream.cc
+++ b/quic/core/quic_stream.cc
@@ -1433,4 +1433,10 @@
: QuicStream::kDefaultPriority);
}
+absl::optional<QuicByteCount> QuicStream::GetSendWindow() const {
+ return flow_controller_.has_value()
+ ? absl::optional<QuicByteCount>(flow_controller_->SendWindowSize())
+ : absl::nullopt;
+}
+
} // namespace quic
diff --git a/quic/core/quic_stream.h b/quic/core/quic_stream.h
index 83dd375..f3aa947 100644
--- a/quic/core/quic_stream.h
+++ b/quic/core/quic_stream.h
@@ -452,6 +452,9 @@
QuicStreamSendBuffer& send_buffer() { return send_buffer_; }
+ // Return the current flow control send window in bytes.
+ absl::optional<QuicByteCount> GetSendWindow() const;
+
private:
friend class test::QuicStreamPeer;
friend class QuicStreamUtils;