|  | // Copyright (c) 2018 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "net/third_party/quiche/src/quic/core/qpack/qpack_decoder_stream_sender.h" | 
|  |  | 
|  | #include <cstddef> | 
|  | #include <limits> | 
|  | #include <string> | 
|  |  | 
|  | #include "net/third_party/quiche/src/quic/core/qpack/qpack_instructions.h" | 
|  | #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h" | 
|  | #include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h" | 
|  |  | 
|  | namespace quic { | 
|  |  | 
|  | QpackDecoderStreamSender::QpackDecoderStreamSender() : delegate_(nullptr) {} | 
|  |  | 
|  | void QpackDecoderStreamSender::SendInsertCountIncrement(uint64_t increment) { | 
|  | instruction_encoder_.Encode( | 
|  | QpackInstructionWithValues::InsertCountIncrement(increment), &buffer_); | 
|  | } | 
|  |  | 
|  | void QpackDecoderStreamSender::SendHeaderAcknowledgement( | 
|  | QuicStreamId stream_id) { | 
|  | instruction_encoder_.Encode( | 
|  | QpackInstructionWithValues::HeaderAcknowledgement(stream_id), &buffer_); | 
|  | } | 
|  |  | 
|  | void QpackDecoderStreamSender::SendStreamCancellation(QuicStreamId stream_id) { | 
|  | instruction_encoder_.Encode( | 
|  | QpackInstructionWithValues::StreamCancellation(stream_id), &buffer_); | 
|  | } | 
|  |  | 
|  | void QpackDecoderStreamSender::Flush() { | 
|  | if (buffer_.empty()) { | 
|  | return; | 
|  | } | 
|  |  | 
|  | delegate_->WriteStreamData(buffer_); | 
|  | buffer_.clear(); | 
|  | } | 
|  |  | 
|  | }  // namespace quic |