Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Unified Diff: net/spdy/hpack_static_table.cc

Issue 549583003: Make HPACK static table static and immutable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/hpack_static_table.h ('k') | net/spdy/hpack_static_table_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/hpack_static_table.cc
diff --git a/net/spdy/hpack_static_table.cc b/net/spdy/hpack_static_table.cc
new file mode 100644
index 0000000000000000000000000000000000000000..da2793d4293de61a8c171b70d2c3a13c84b373fa
--- /dev/null
+++ b/net/spdy/hpack_static_table.cc
@@ -0,0 +1,38 @@
+// 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 "net/spdy/hpack_static_table.h"
+
+#include "base/logging.h"
+#include "net/spdy/hpack_constants.h"
+#include "net/spdy/hpack_entry.h"
+
+namespace net {
+
+HpackStaticTable::HpackStaticTable() {}
+
+HpackStaticTable::~HpackStaticTable() {}
+
+void HpackStaticTable::Initialize(const HpackStaticEntry* static_entry_table,
+ size_t static_entry_count) {
+ CHECK(!IsInitialized());
+
+ int total_insertions = 0;
+ for (const HpackStaticEntry* it = static_entry_table;
+ it != static_entry_table + static_entry_count; ++it) {
+ static_entries_.push_back(HpackEntry(StringPiece(it->name, it->name_len),
+ StringPiece(it->value, it->value_len),
+ true, // is_static
+ total_insertions));
+ CHECK(static_index_.insert(&static_entries_.back()).second);
+
+ ++total_insertions;
+ }
+}
+
+bool HpackStaticTable::IsInitialized() const {
+ return !static_entries_.empty();
+}
+
+} // namespace net
« no previous file with comments | « net/spdy/hpack_static_table.h ('k') | net/spdy/hpack_static_table_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698