| Index: net/spdy/spdy_headers_block_parser.h
|
| diff --git a/net/spdy/spdy_headers_block_parser.h b/net/spdy/spdy_headers_block_parser.h
|
| deleted file mode 100644
|
| index 54334b23a92eeb4d9cef251367ad1be75bd488e7..0000000000000000000000000000000000000000
|
| --- a/net/spdy/spdy_headers_block_parser.h
|
| +++ /dev/null
|
| @@ -1,147 +0,0 @@
|
| -// 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.
|
| -
|
| -#ifndef NET_SPDY_SPDY_HEADERS_BLOCK_PARSER_H_
|
| -#define NET_SPDY_SPDY_HEADERS_BLOCK_PARSER_H_
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/strings/string_piece.h"
|
| -#include "net/base/net_export.h"
|
| -#include "net/spdy/spdy_prefixed_buffer_reader.h"
|
| -#include "net/spdy/spdy_protocol.h"
|
| -
|
| -namespace net {
|
| -
|
| -// A handler class for SPDY headers.
|
| -class SpdyHeadersHandlerInterface {
|
| - public:
|
| - virtual ~SpdyHeadersHandlerInterface() {}
|
| -
|
| - // A callback method which notifies when the parser starts handling a new
|
| - // SPDY headers block, this method also notifies on the number of headers in
|
| - // the block.
|
| - virtual void OnHeaderBlock(uint32_t num_of_headers) = 0;
|
| -
|
| - // A callback method which notifies on a SPDY header key value pair.
|
| - virtual void OnHeader(base::StringPiece key, base::StringPiece value) = 0;
|
| -
|
| - // A callback method which notifies when the parser finishes handling a SPDY
|
| - // headers block. Also notifies on the total number of bytes in this block.
|
| - virtual void OnHeaderBlockEnd(size_t header_bytes_parsed) = 0;
|
| -};
|
| -
|
| -namespace test {
|
| -
|
| -class SpdyHeadersBlockParserPeer;
|
| -
|
| -} // namespace test
|
| -
|
| -// This class handles SPDY headers block bytes and parses out key-value pairs
|
| -// as they arrive. This class is not thread-safe, and assumes that all headers
|
| -// block bytes are processed in a single thread.
|
| -class NET_EXPORT_PRIVATE SpdyHeadersBlockParser {
|
| - public:
|
| - // Bound on acceptable header name or value length.
|
| - static const size_t kMaximumFieldLength; // = 16 * 1024
|
| -
|
| - // Constructor. The handler's OnHeader will be called for every key
|
| - // value pair that we parsed from the headers block.
|
| - SpdyHeadersBlockParser(SpdyMajorVersion spdy_version,
|
| - SpdyHeadersHandlerInterface* handler);
|
| -
|
| - virtual ~SpdyHeadersBlockParser();
|
| -
|
| - // Handles headers block data as it arrives. Returns false if an error has
|
| - // been set, which can include the recoverable error NEED_MORE_DATA. Returns
|
| - // true if the invocation completes the parse of the entire headers block,
|
| - // in which case the parser is ready for a new headers block.
|
| - bool HandleControlFrameHeadersData(SpdyStreamId stream_id,
|
| - const char* headers_data,
|
| - size_t len);
|
| - enum ParserError {
|
| - NO_PARSER_ERROR,
|
| - // Set when parsing failed due to insufficient data.
|
| - // This error is recoverable, by passing in new data.
|
| - NEED_MORE_DATA,
|
| - // Set when a complete block has been read, but unprocessed data remains.
|
| - TOO_MUCH_DATA,
|
| - // Set when a block exceeds |MaxNumberOfHeadersForVersion| headers.
|
| - HEADER_BLOCK_TOO_LARGE,
|
| - // Set when a header key or value exceeds |kMaximumFieldLength|.
|
| - HEADER_FIELD_TOO_LARGE,
|
| - // Set when the parser is given an unexpected stream ID.
|
| - UNEXPECTED_STREAM_ID,
|
| - };
|
| - ParserError get_error() const { return error_; }
|
| -
|
| - SpdyMajorVersion spdy_version() const { return spdy_version_; }
|
| -
|
| - // Returns the size in bytes of a length field in a SPDY header.
|
| - static size_t LengthFieldSizeForVersion(SpdyMajorVersion spdy_version);
|
| -
|
| - // Returns the maximal number of headers in a SPDY headers block.
|
| - static size_t MaxNumberOfHeadersForVersion(SpdyMajorVersion spdy_version);
|
| -
|
| - private:
|
| - typedef SpdyPrefixedBufferReader Reader;
|
| -
|
| - // Parses and sanity-checks header block length.
|
| - void ParseBlockLength(Reader* reader);
|
| -
|
| - // Parses and sanity-checks header field length.
|
| - void ParseFieldLength(Reader* reader);
|
| -
|
| - // Parses and decodes network-order lengths into |parsed_length|.
|
| - void ParseLength(Reader* reader, uint32_t* parsed_length);
|
| -
|
| - // The state of the parser.
|
| - enum ParserState {
|
| - READING_HEADER_BLOCK_LEN,
|
| - READING_KEY_LEN,
|
| - READING_KEY,
|
| - READING_VALUE_LEN,
|
| - READING_VALUE,
|
| - FINISHED_HEADER
|
| - };
|
| - ParserState state_;
|
| -
|
| - // Size in bytes of a length field in the spdy header.
|
| - const size_t length_field_size_;
|
| -
|
| - // The maximal number of headers in a SPDY headers block.
|
| - const size_t max_headers_in_block_;
|
| -
|
| - // A running total of the bytes parsed since the last call to Reset().
|
| - size_t total_bytes_received_;
|
| -
|
| - // Number of key-value pairs until we complete handling the current
|
| - // headers block.
|
| - uint32_t remaining_key_value_pairs_for_frame_;
|
| -
|
| - // The length of the next header field to be read (either key or value).
|
| - uint32_t next_field_length_;
|
| -
|
| - // Handles key-value pairs as we parse them.
|
| - SpdyHeadersHandlerInterface* handler_;
|
| -
|
| - // Holds unprocessed buffer remainders between calls to
|
| - // |HandleControlFrameHeadersData|.
|
| - SpdyPinnableBufferPiece headers_block_prefix_;
|
| -
|
| - // Holds the key of a partially processed header between calls to
|
| - // |HandleControlFrameHeadersData|.
|
| - SpdyPinnableBufferPiece key_;
|
| -
|
| - // The current header block stream identifier.
|
| - SpdyStreamId stream_id_;
|
| -
|
| - ParserError error_;
|
| -
|
| - const SpdyMajorVersion spdy_version_;
|
| -};
|
| -
|
| -} // namespace net
|
| -
|
| -#endif // NET_SPDY_SPDY_HEADERS_BLOCK_PARSER_H_
|
|
|