blob: bc17bf21a416d86a4e08a5d6679bf585c821a1e9 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "spdy/core/hpack/hpack_entry.h"
#include "absl/strings/str_cat.h"
#include "spdy/platform/api/spdy_estimate_memory_usage.h"
#include "spdy/platform/api/spdy_logging.h"
namespace spdy {
HpackEntry::HpackEntry(absl::string_view name,
absl::string_view value,
size_t insertion_index)
: name_(std::string(name)),
value_(std::string(value)),
insertion_index_(insertion_index) {}
HpackEntry::HpackEntry() : insertion_index_(0) {}
// static
size_t HpackEntry::Size(absl::string_view name, absl::string_view value) {
return name.size() + value.size() + kHpackEntrySizeOverhead;
}
size_t HpackEntry::Size() const {
return Size(name(), value());
}
std::string HpackEntry::GetDebugString() const {
return absl::StrCat("{ name: \"", name_, "\", value: \"", value_,
"\", index: ", insertion_index_, " }");
}
size_t HpackEntry::EstimateMemoryUsage() const {
return SpdyEstimateMemoryUsage(name_) + SpdyEstimateMemoryUsage(value_);
}
} // namespace spdy