diff options
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender.cc')
-rw-r--r-- | chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender.cc b/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender.cc index 4079ba45a85..8b6f887cf3c 100644 --- a/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender.cc +++ b/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender.cc @@ -14,6 +14,14 @@ namespace quic { +namespace { + +// If QUIC stream bufferes more that this number of bytes, +// CanWrite() will return false. +constexpr uint64_t kMaxBytesBufferedByStream = 64 * 1024; + +} // anonymous namespace + QpackEncoderStreamSender::QpackEncoderStreamSender() : delegate_(nullptr) {} void QpackEncoderStreamSender::SendInsertWithNameReference( @@ -44,6 +52,11 @@ void QpackEncoderStreamSender::SendSetDynamicTableCapacity(uint64_t capacity) { QpackInstructionWithValues::SetDynamicTableCapacity(capacity), &buffer_); } +bool QpackEncoderStreamSender::CanWrite() const { + return delegate_ && delegate_->NumBytesBuffered() + buffer_.size() <= + kMaxBytesBufferedByStream; +} + void QpackEncoderStreamSender::Flush() { if (buffer_.empty()) { return; |