#include "quiche/quic/core/http/http_encoder.h"
#include <algorithm>
#include <cstdint>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "quiche/quic/core/crypto/quic_random.h"
#include "quiche/quic/core/quic_data_writer.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_bug_tracker.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 {
bool WriteFrameHeader(QuicByteCount length, HttpFrameType type,
QuicDataWriter* writer) { … }
QuicByteCount GetTotalLength(QuicByteCount payload_length, HttpFrameType type) { … }
}
QuicByteCount HttpEncoder::GetDataFrameHeaderLength(
QuicByteCount payload_length) { … }
quiche::QuicheBuffer HttpEncoder::SerializeDataFrameHeader(
QuicByteCount payload_length, quiche::QuicheBufferAllocator* allocator) { … }
std::string HttpEncoder::SerializeHeadersFrameHeader(
QuicByteCount payload_length) { … }
std::string HttpEncoder::SerializeSettingsFrame(const SettingsFrame& settings) { … }
std::string HttpEncoder::SerializeGoAwayFrame(const GoAwayFrame& goaway) { … }
std::string HttpEncoder::SerializePriorityUpdateFrame(
const PriorityUpdateFrame& priority_update) { … }
std::string HttpEncoder::SerializeAcceptChFrame(
const AcceptChFrame& accept_ch) { … }
std::string HttpEncoder::SerializeOriginFrame(const OriginFrame& origin) { … }
std::string HttpEncoder::SerializeGreasingFrame() { … }
std::string HttpEncoder::SerializeWebTransportStreamFrameHeader(
WebTransportSessionId session_id) { … }
std::string HttpEncoder::SerializeMetadataFrameHeader(
QuicByteCount payload_length) { … }
}