#include "quiche/quic/core/qpack/qpack_encoder.h"
#include <algorithm>
#include <string>
#include <utility>
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quiche/quic/core/qpack/qpack_index_conversions.h"
#include "quiche/quic/core/qpack/qpack_instruction_encoder.h"
#include "quiche/quic/core/qpack/qpack_required_insert_count.h"
#include "quiche/quic/core/qpack/value_splitting_header_list.h"
#include "quiche/quic/platform/api/quic_flag_utils.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_logging.h"
namespace quic {
namespace {
const float kDrainingFraction = …;
}
QpackEncoder::QpackEncoder(
DecoderStreamErrorDelegate* decoder_stream_error_delegate,
HuffmanEncoding huffman_encoding, CookieCrumbling cookie_crumbling)
: … { … }
QpackEncoder::~QpackEncoder() { … }
QpackEncoder::Representation QpackEncoder::EncodeIndexedHeaderField(
bool is_static, uint64_t index,
QpackBlockingManager::IndexSet* referred_indices) { … }
QpackEncoder::Representation
QpackEncoder::EncodeLiteralHeaderFieldWithNameReference(
bool is_static, uint64_t index, absl::string_view value,
QpackBlockingManager::IndexSet* referred_indices) { … }
QpackEncoder::Representation QpackEncoder::EncodeLiteralHeaderField(
absl::string_view name, absl::string_view value) { … }
QpackEncoder::Representations QpackEncoder::FirstPassEncode(
QuicStreamId stream_id, const quiche::HttpHeaderBlock& header_list,
QpackBlockingManager::IndexSet* referred_indices,
QuicByteCount* encoder_stream_sent_byte_count) { … }
std::string QpackEncoder::SecondPassEncode(
QpackEncoder::Representations representations,
uint64_t required_insert_count) const { … }
std::string QpackEncoder::EncodeHeaderList(
QuicStreamId stream_id, const quiche::HttpHeaderBlock& header_list,
QuicByteCount* encoder_stream_sent_byte_count) { … }
bool QpackEncoder::SetMaximumDynamicTableCapacity(
uint64_t maximum_dynamic_table_capacity) { … }
void QpackEncoder::SetDynamicTableCapacity(uint64_t dynamic_table_capacity) { … }
bool QpackEncoder::SetMaximumBlockedStreams(uint64_t maximum_blocked_streams) { … }
void QpackEncoder::OnInsertCountIncrement(uint64_t increment) { … }
void QpackEncoder::OnHeaderAcknowledgement(QuicStreamId stream_id) { … }
void QpackEncoder::OnStreamCancellation(QuicStreamId stream_id) { … }
void QpackEncoder::OnErrorDetected(QuicErrorCode error_code,
absl::string_view error_message) { … }
}