#include "quiche/quic/core/http/http_decoder.h"
#include <algorithm>
#include <cstdint>
#include <string>
#include <utility>
#include "absl/base/attributes.h"
#include "absl/strings/string_view.h"
#include "quiche/http2/http2_constants.h"
#include "quiche/quic/core/http/http_frames.h"
#include "quiche/quic/core/quic_data_reader.h"
#include "quiche/quic/core/quic_error_codes.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 {
constexpr QuicByteCount kPayloadLengthLimit = …;
}
HttpDecoder::HttpDecoder(Visitor* visitor)
: … { … }
HttpDecoder::~HttpDecoder() { … }
bool HttpDecoder::DecodeSettings(const char* data, QuicByteCount len,
SettingsFrame* frame) { … }
QuicByteCount HttpDecoder::ProcessInput(const char* data, QuicByteCount len) { … }
bool HttpDecoder::ReadFrameType(QuicDataReader& reader) { … }
bool HttpDecoder::ReadFrameLength(QuicDataReader& reader) { … }
bool HttpDecoder::IsFrameBuffered() { … }
bool HttpDecoder::ReadFramePayload(QuicDataReader& reader) { … }
bool HttpDecoder::FinishParsing() { … }
void HttpDecoder::ResetForNextFrame() { … }
bool HttpDecoder::HandleUnknownFramePayload(QuicDataReader& reader) { … }
bool HttpDecoder::BufferOrParsePayload(QuicDataReader& reader) { … }
bool HttpDecoder::ParseEntirePayload(QuicDataReader& reader) { … }
void HttpDecoder::BufferFrameLength(QuicDataReader& reader) { … }
void HttpDecoder::BufferFrameType(QuicDataReader& reader) { … }
void HttpDecoder::RaiseError(QuicErrorCode error, std::string error_detail) { … }
bool HttpDecoder::ParseSettingsFrame(QuicDataReader& reader,
SettingsFrame& frame) { … }
bool HttpDecoder::ParsePriorityUpdateFrame(QuicDataReader& reader,
PriorityUpdateFrame& frame) { … }
bool HttpDecoder::ParseOriginFrame(QuicDataReader& reader, OriginFrame& frame) { … }
bool HttpDecoder::ParseAcceptChFrame(QuicDataReader& reader,
AcceptChFrame& frame) { … }
QuicByteCount HttpDecoder::MaxFrameLength(uint64_t frame_type) { … }
std::string HttpDecoder::DebugString() const { … }
}