1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "net/spdy/hpack_entry.h" 6 7#include "base/logging.h" 8#include "base/strings/string_number_conversions.h" 9#include "net/spdy/hpack_string_util.h" 10 11namespace net { 12 13using base::StringPiece; 14 15const size_t HpackEntry::kSizeOverhead = 32; 16 17HpackEntry::HpackEntry(StringPiece name, 18 StringPiece value, 19 bool is_static, 20 size_t insertion_index) 21 : name_(name.data(), name.size()), 22 value_(value.data(), value.size()), 23 insertion_index_(insertion_index), 24 type_(is_static ? STATIC : DYNAMIC) { 25} 26 27HpackEntry::HpackEntry(StringPiece name, StringPiece value) 28 : name_(name.data(), name.size()), 29 value_(value.data(), value.size()), 30 insertion_index_(0), 31 type_(LOOKUP) { 32} 33 34HpackEntry::HpackEntry() 35 : insertion_index_(0), 36 type_(LOOKUP) { 37} 38 39HpackEntry::~HpackEntry() {} 40 41// static 42size_t HpackEntry::Size(StringPiece name, StringPiece value) { 43 return name.size() + value.size() + kSizeOverhead; 44} 45size_t HpackEntry::Size() const { 46 return Size(name(), value()); 47} 48 49std::string HpackEntry::GetDebugString() const { 50 return "{ name: \"" + name_ + 51 "\", value: \"" + value_ + 52 "\", " + (IsStatic() ? "static" : "dynamic") + " }"; 53} 54 55} // namespace net 56