#include "quiche/binary_http/binary_http_message.h"
#include <algorithm>
#include <cstdint>
#include <functional>
#include <iterator>
#include <memory>
#include <ostream>
#include <string>
#include <utility>
#include <vector>
#include "absl/container/flat_hash_map.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/ascii.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_join.h"
#include "absl/strings/string_view.h"
#include "quiche/common/quiche_callbacks.h"
#include "quiche/common/quiche_data_reader.h"
#include "quiche/common/quiche_data_writer.h"
namespace quiche {
namespace {
constexpr uint8_t kKnownLengthRequestFraming = …;
constexpr uint8_t kKnownLengthResponseFraming = …;
bool ReadStringValue(quiche::QuicheDataReader& reader, std::string& data) { … }
bool IsValidPadding(absl::string_view data) { … }
absl::StatusOr<BinaryHttpRequest::ControlData> DecodeControlData(
quiche::QuicheDataReader& reader) { … }
absl::Status DecodeFields(quiche::QuicheDataReader& reader,
quiche::UnretainedCallback<void(
absl::string_view name, absl::string_view value)>
callback) { … }
absl::Status DecodeFieldsAndBody(quiche::QuicheDataReader& reader,
BinaryHttpMessage& message) { … }
absl::StatusOr<BinaryHttpRequest> DecodeKnownLengthRequest(
quiche::QuicheDataReader& reader) { … }
absl::StatusOr<BinaryHttpResponse> DecodeKnownLengthResponse(
quiche::QuicheDataReader& reader) { … }
uint64_t StringPieceVarInt62Len(absl::string_view s) { … }
}
void BinaryHttpMessage::Fields::AddField(BinaryHttpMessage::Field field) { … }
absl::Status BinaryHttpMessage::Fields::Encode(
quiche::QuicheDataWriter& writer) const { … }
size_t BinaryHttpMessage::Fields::EncodedSize() const { … }
size_t BinaryHttpMessage::Fields::EncodedFieldsSize() const { … }
BinaryHttpMessage* BinaryHttpMessage::AddHeaderField(
BinaryHttpMessage::Field field) { … }
absl::Status BinaryHttpMessage::EncodeKnownLengthFieldsAndBody(
quiche::QuicheDataWriter& writer) const { … }
size_t BinaryHttpMessage::EncodedKnownLengthFieldsAndBodySize() const { … }
absl::Status BinaryHttpResponse::AddInformationalResponse(
uint16_t status_code, std::vector<Field> header_fields) { … }
absl::StatusOr<std::string> BinaryHttpResponse::Serialize() const { … }
absl::StatusOr<std::string> BinaryHttpResponse::EncodeAsKnownLength() const { … }
size_t BinaryHttpResponse::EncodedSize() const { … }
void BinaryHttpResponse::InformationalResponse::AddField(absl::string_view name,
std::string value) { … }
absl::Status BinaryHttpResponse::InformationalResponse::Encode(
quiche::QuicheDataWriter& writer) const { … }
size_t BinaryHttpResponse::InformationalResponse::EncodedSize() const { … }
absl::StatusOr<std::string> BinaryHttpRequest::Serialize() const { … }
absl::Status BinaryHttpRequest::EncodeControlData(
quiche::QuicheDataWriter& writer) const { … }
size_t BinaryHttpRequest::EncodedControlDataSize() const { … }
size_t BinaryHttpRequest::EncodedSize() const { … }
absl::StatusOr<std::string> BinaryHttpRequest::EncodeAsKnownLength() const { … }
absl::StatusOr<BinaryHttpRequest> BinaryHttpRequest::Create(
absl::string_view data) { … }
absl::StatusOr<BinaryHttpResponse> BinaryHttpResponse::Create(
absl::string_view data) { … }
std::string BinaryHttpMessage::DebugString() const { … }
std::string BinaryHttpMessage::Field::DebugString() const { … }
std::string BinaryHttpResponse::InformationalResponse::DebugString() const { … }
std::string BinaryHttpResponse::DebugString() const { … }
std::string BinaryHttpRequest::DebugString() const { … }
void PrintTo(const BinaryHttpRequest& msg, std::ostream* os) { … }
void PrintTo(const BinaryHttpResponse& msg, std::ostream* os) { … }
void PrintTo(const BinaryHttpMessage::Field& msg, std::ostream* os) { … }
}