Index: net/http2/hpack/decoder/hpack_block_collector.h |
diff --git a/net/http2/hpack/decoder/hpack_block_collector.h b/net/http2/hpack/decoder/hpack_block_collector.h |
deleted file mode 100644 |
index 2b283b9d53e499daf3c47f3878f89629bc1084f5..0000000000000000000000000000000000000000 |
--- a/net/http2/hpack/decoder/hpack_block_collector.h |
+++ /dev/null |
@@ -1,128 +0,0 @@ |
-// Copyright 2016 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. |
- |
-#ifndef NET_HTTP2_HPACK_DECODER_HPACK_BLOCK_COLLECTOR_H_ |
-#define NET_HTTP2_HPACK_DECODER_HPACK_BLOCK_COLLECTOR_H_ |
- |
-// HpackBlockCollector implements HpackEntryDecoderListener in order to record |
-// the calls using HpackEntryCollector instances (one per HPACK entry). This |
-// supports testing of HpackBlockDecoder, which decodes entire HPACK blocks. |
-// |
-// In addition to implementing the callback methods, HpackBlockCollector also |
-// supports comparing two HpackBlockCollector instances (i.e. an expected and |
-// an actual), or a sole HPACK entry against an expected value. |
- |
-#include <stddef.h> |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/strings/string_piece.h" |
-#include "net/http2/hpack/decoder/hpack_entry_collector.h" |
-#include "net/http2/hpack/decoder/hpack_entry_decoder_listener.h" |
-#include "net/http2/hpack/http2_hpack_constants.h" |
-#include "net/http2/hpack/tools/hpack_block_builder.h" |
- |
-namespace net { |
-namespace test { |
- |
-class RandomBase; |
- |
-class HpackBlockCollector : public HpackEntryDecoderListener { |
- public: |
- // Implementations of HpackEntryDecoderListener, forwarding to pending_entry_, |
- // an HpackEntryCollector for the "in-progress" HPACK entry. OnIndexedHeader |
- // and OnDynamicTableSizeUpdate are pending only for that one call, while |
- // OnStartLiteralHeader is followed by many calls, ending with OnValueEnd. |
- // Once all the calls for one HPACK entry have been received, PushPendingEntry |
- // is used to append the pending_entry_ entry to the collected entries_. |
- HpackBlockCollector(); |
- HpackBlockCollector(const HpackBlockCollector& other); |
- ~HpackBlockCollector() override; |
- void OnIndexedHeader(size_t index) override; |
- void OnDynamicTableSizeUpdate(size_t size) override; |
- void OnStartLiteralHeader(HpackEntryType header_type, |
- size_t maybe_name_index) override; |
- void OnNameStart(bool huffman_encoded, size_t len) override; |
- void OnNameData(const char* data, size_t len) override; |
- void OnNameEnd() override; |
- void OnValueStart(bool huffman_encoded, size_t len) override; |
- void OnValueData(const char* data, size_t len) override; |
- void OnValueEnd() override; |
- |
- // Methods for creating a set of expectations (i.e. HPACK entries to compare |
- // against those collected by another instance of HpackBlockCollector). |
- |
- // Add an HPACK entry for an indexed header. |
- void ExpectIndexedHeader(size_t index); |
- |
- // Add an HPACK entry for a dynamic table size update. |
- void ExpectDynamicTableSizeUpdate(size_t size); |
- |
- // Add an HPACK entry for a header entry with an index for the name, and a |
- // literal value. |
- void ExpectNameIndexAndLiteralValue(HpackEntryType type, |
- size_t index, |
- bool value_huffman, |
- const std::string& value); |
- |
- // Add an HPACK entry for a header entry with a literal name and value. |
- void ExpectLiteralNameAndValue(HpackEntryType type, |
- bool name_huffman, |
- const std::string& name, |
- bool value_huffman, |
- const std::string& value); |
- |
- // Shuffle the entries, in support of generating an HPACK block of entries |
- // in some random order. |
- void ShuffleEntries(RandomBase* rng); |
- |
- // Serialize entries_ to the HpackBlockBuilder. |
- void AppendToHpackBlockBuilder(HpackBlockBuilder* hbb) const; |
- |
- // Return AssertionSuccess if there is just one entry, and it is an |
- // Indexed Header with the specified index. |
- ::testing::AssertionResult ValidateSoleIndexedHeader(size_t ndx) const; |
- |
- // Return AssertionSuccess if there is just one entry, and it is a |
- // Dynamic Table Size Update with the specified size. |
- ::testing::AssertionResult ValidateSoleDynamicTableSizeUpdate( |
- size_t size) const; |
- |
- // Return AssertionSuccess if there is just one entry, and it is a Header |
- // entry with an index for the name and a literal value. |
- ::testing::AssertionResult ValidateSoleLiteralValueHeader( |
- HpackEntryType expected_type, |
- size_t expected_index, |
- bool expected_value_huffman, |
- base::StringPiece expected_value) const; |
- |
- // Return AssertionSuccess if there is just one entry, and it is a Header |
- // with a literal name and literal value. |
- ::testing::AssertionResult ValidateSoleLiteralNameValueHeader( |
- HpackEntryType expected_type, |
- bool expected_name_huffman, |
- base::StringPiece expected_name, |
- bool expected_value_huffman, |
- base::StringPiece expected_value) const; |
- |
- bool IsNotPending() const { return pending_entry_.IsClear(); } |
- bool IsClear() const { return IsNotPending() && entries_.empty(); } |
- void Clear(); |
- |
- ::testing::AssertionResult VerifyEq(const HpackBlockCollector& that) const; |
- |
- private: |
- // Push the value of pending_entry_ onto entries_, and clear pending_entry_. |
- // The pending_entry_ must be complete. |
- void PushPendingEntry(); |
- |
- HpackEntryCollector pending_entry_; |
- std::vector<HpackEntryCollector> entries_; |
-}; |
- |
-} // namespace test |
-} // namespace net |
- |
-#endif // NET_HTTP2_HPACK_DECODER_HPACK_BLOCK_COLLECTOR_H_ |