#include "quiche/common/http/http_header_block.h"
#include <string.h>
#include <algorithm>
#include <ios>
#include <string>
#include <utility>
#include "absl/strings/str_cat.h"
#include "quiche/common/platform/api/quiche_logging.h"
namespace quiche {
namespace {
const size_t kInitialMapBuckets = …;
const char kCookieKey[] = …;
const char kNullSeparator = …;
absl::string_view SeparatorForKey(absl::string_view key) { … }
}
HttpHeaderBlock::HeaderValue::HeaderValue(HttpHeaderStorage* storage,
absl::string_view key,
absl::string_view initial_value)
: … { … }
HttpHeaderBlock::HeaderValue::HeaderValue(HeaderValue&& other)
: … { … }
HttpHeaderBlock::HeaderValue& HttpHeaderBlock::HeaderValue::operator=(
HeaderValue&& other) { … }
void HttpHeaderBlock::HeaderValue::set_storage(HttpHeaderStorage* storage) { … }
HttpHeaderBlock::HeaderValue::~HeaderValue() = default;
absl::string_view HttpHeaderBlock::HeaderValue::ConsolidatedValue() const { … }
void HttpHeaderBlock::HeaderValue::Append(absl::string_view fragment) { … }
const std::pair<absl::string_view, absl::string_view>&
HttpHeaderBlock::HeaderValue::as_pair() const { … }
HttpHeaderBlock::iterator::iterator(MapType::const_iterator it) : … { … }
HttpHeaderBlock::iterator::iterator(const iterator& other) = default;
HttpHeaderBlock::iterator::~iterator() = default;
HttpHeaderBlock::ValueProxy::ValueProxy(
HttpHeaderBlock* block, HttpHeaderBlock::MapType::iterator lookup_result,
const absl::string_view key, size_t* spdy_header_block_value_size)
: … { … }
HttpHeaderBlock::ValueProxy::ValueProxy(ValueProxy&& other)
: … { … }
HttpHeaderBlock::ValueProxy& HttpHeaderBlock::ValueProxy::operator=(
HttpHeaderBlock::ValueProxy&& other) { … }
HttpHeaderBlock::ValueProxy::~ValueProxy() { … }
HttpHeaderBlock::ValueProxy& HttpHeaderBlock::ValueProxy::operator=(
absl::string_view value) { … }
bool HttpHeaderBlock::ValueProxy::operator==(absl::string_view value) const { … }
std::string HttpHeaderBlock::ValueProxy::as_string() const { … }
HttpHeaderBlock::HttpHeaderBlock() : … { … }
HttpHeaderBlock::HttpHeaderBlock(HttpHeaderBlock&& other)
: … { … }
HttpHeaderBlock::~HttpHeaderBlock() = default;
HttpHeaderBlock& HttpHeaderBlock::operator=(HttpHeaderBlock&& other) { … }
HttpHeaderBlock HttpHeaderBlock::Clone() const { … }
bool HttpHeaderBlock::operator==(const HttpHeaderBlock& other) const { … }
bool HttpHeaderBlock::operator!=(const HttpHeaderBlock& other) const { … }
std::string HttpHeaderBlock::DebugString() const { … }
void HttpHeaderBlock::erase(absl::string_view key) { … }
void HttpHeaderBlock::clear() { … }
HttpHeaderBlock::InsertResult HttpHeaderBlock::insert(
const HttpHeaderBlock::value_type& value) { … }
HttpHeaderBlock::ValueProxy HttpHeaderBlock::operator[](
const absl::string_view key) { … }
void HttpHeaderBlock::AppendValueOrAddHeader(const absl::string_view key,
const absl::string_view value) { … }
void HttpHeaderBlock::AppendHeader(const absl::string_view key,
const absl::string_view value) { … }
absl::string_view HttpHeaderBlock::WriteKey(const absl::string_view key) { … }
size_t HttpHeaderBlock::bytes_allocated() const { … }
}