Index: net/spdy/spdy_framer_decoder_adapter.h |
diff --git a/net/spdy/spdy_framer_decoder_adapter.h b/net/spdy/spdy_framer_decoder_adapter.h |
deleted file mode 100644 |
index cbe0788202d50e8348cecd8d43e8a57cdae9010c..0000000000000000000000000000000000000000 |
--- a/net/spdy/spdy_framer_decoder_adapter.h |
+++ /dev/null |
@@ -1,168 +0,0 @@ |
-// Copyright (c) 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_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ |
-#define NET_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ |
- |
-#include <stddef.h> |
- |
-#include <cstdint> |
-#include <memory> |
- |
-#include "net/spdy/hpack/hpack_header_table.h" |
-#include "net/spdy/platform/api/spdy_string_piece.h" |
-#include "net/spdy/spdy_alt_svc_wire_format.h" |
-#include "net/spdy/spdy_framer.h" |
-#include "net/spdy/spdy_headers_handler_interface.h" |
-#include "net/spdy/spdy_protocol.h" |
- |
-namespace net { |
- |
-// Abstract base class for an HTTP/2 decoder to be called from SpdyFramer. |
-class SpdyFramerDecoderAdapter { |
- public: |
- SpdyFramerDecoderAdapter(); |
- virtual ~SpdyFramerDecoderAdapter(); |
- |
- // Set callbacks to be called from the framer. A visitor must be set, or |
- // else the framer will likely crash. It is acceptable for the visitor |
- // to do nothing. If this is called multiple times, only the last visitor |
- // will be used. |
- virtual void set_visitor(SpdyFramerVisitorInterface* visitor); |
- SpdyFramerVisitorInterface* visitor() const { return visitor_; } |
- |
- // Set extension callbacks to be called from the framer or decoder. Optional. |
- // If called multiple times, only the last visitor will be used. |
- virtual void set_extension_visitor(ExtensionVisitorInterface* visitor) = 0; |
- |
- // Set debug callbacks to be called from the framer. The debug visitor is |
- // completely optional and need not be set in order for normal operation. |
- // If this is called multiple times, only the last visitor will be used. |
- virtual void set_debug_visitor( |
- SpdyFramerDebugVisitorInterface* debug_visitor); |
- SpdyFramerDebugVisitorInterface* debug_visitor() const { |
- return debug_visitor_; |
- } |
- |
- // Set debug callbacks to be called from the HPACK decoder. |
- virtual void SetDecoderHeaderTableDebugVisitor( |
- std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor) = 0; |
- |
- // Sets whether or not ProcessInput returns after finishing a frame, or |
- // continues processing additional frames. Normally ProcessInput processes |
- // all input, but this method enables the caller (and visitor) to work with |
- // a single frame at a time (or that portion of the frame which is provided |
- // as input). Reset() does not change the value of this flag. |
- virtual void set_process_single_input_frame(bool v); |
- bool process_single_input_frame() const { |
- return process_single_input_frame_; |
- } |
- |
- // Decode the |len| bytes of encoded HTTP/2 starting at |*data|. Returns |
- // the number of bytes consumed. It is safe to pass more bytes in than |
- // may be consumed. Should process (or otherwise buffer) as much as |
- // available, unless process_single_input_frame is true. |
- virtual size_t ProcessInput(const char* data, size_t len) = 0; |
- |
- // Reset the decoder (used just for tests at this time). |
- virtual void Reset() = 0; |
- |
- // Current state of the decoder. |
- virtual SpdyFramer::SpdyState state() const = 0; |
- |
- // Current error code (NO_ERROR if state != ERROR). |
- virtual SpdyFramer::SpdyFramerError spdy_framer_error() const = 0; |
- |
- // Has any frame header looked like the start of an HTTP/1.1 (or earlier) |
- // response? Used to detect if a backend/server that we sent a request to |
- // has responded with an HTTP/1.1 (or earlier) response. |
- virtual bool probable_http_response() const = 0; |
- |
- // Returns the estimate of dynamically allocated memory in bytes. |
- virtual size_t EstimateMemoryUsage() const = 0; |
- |
- private: |
- SpdyFramerVisitorInterface* visitor_ = nullptr; |
- SpdyFramerDebugVisitorInterface* debug_visitor_ = nullptr; |
- bool process_single_input_frame_ = false; |
-}; |
- |
-// Create an instance of NestedSpdyFramerDecoder, which implements |
-// SpdyFramerDecoderAdapter, delegating to a SpdyFramer instance that will |
-// actually perform the decoding (when requested via ProcessInput). This allows |
-// us to test the SpdyFramerDecoderAdapter mechanism without changing the type |
-// of decoder that is used. |
-std::unique_ptr<SpdyFramerDecoderAdapter> CreateNestedSpdyFramerDecoder( |
- SpdyFramer* outer); |
- |
-// SpdyFramerVisitorInterface::OnError needs the original SpdyFramer* to |
-// pass to the visitor (really a listener). This implementation takes care of |
-// that while passing along all other calls unmodified. |
-class SpdyFramerVisitorAdapter : public SpdyFramerVisitorInterface { |
- public: |
- SpdyFramerVisitorAdapter(SpdyFramerVisitorInterface* visitor, |
- SpdyFramer* framer) |
- : visitor_(visitor), framer_(framer) {} |
- ~SpdyFramerVisitorAdapter() override {} |
- // The visitor needs the original SpdyFramer, not the SpdyFramerDecoderAdapter |
- // instance. |
- void OnError(SpdyFramer* framer) override; |
- void OnCommonHeader(SpdyStreamId stream_id, |
- size_t length, |
- uint8_t type, |
- uint8_t flags) override; |
- void OnDataFrameHeader(SpdyStreamId stream_id, |
- size_t length, |
- bool fin) override; |
- void OnStreamFrameData(SpdyStreamId stream_id, |
- const char* data, |
- size_t len) override; |
- void OnStreamEnd(SpdyStreamId stream_id) override; |
- void OnStreamPadding(SpdyStreamId stream_id, size_t len) override; |
- SpdyHeadersHandlerInterface* OnHeaderFrameStart( |
- SpdyStreamId stream_id) override; |
- void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override; |
- void OnRstStream(SpdyStreamId stream_id, SpdyErrorCode error_code) override; |
- void OnSetting(SpdySettingsIds id, uint32_t value) override; |
- void OnPing(SpdyPingId unique_id, bool is_ack) override; |
- void OnSettings(bool clear_persisted) override; |
- void OnSettingsAck() override; |
- void OnSettingsEnd() override; |
- void OnGoAway(SpdyStreamId last_accepted_stream_id, |
- SpdyErrorCode error_code) override; |
- void OnHeaders(SpdyStreamId stream_id, |
- bool has_priority, |
- int weight, |
- SpdyStreamId parent_stream_id, |
- bool exclusive, |
- bool fin, |
- bool end) override; |
- void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; |
- bool OnGoAwayFrameData(const char* goaway_data, size_t len) override; |
- void OnPushPromise(SpdyStreamId stream_id, |
- SpdyStreamId promised_stream_id, |
- bool end) override; |
- void OnContinuation(SpdyStreamId stream_id, bool end) override; |
- void OnPriority(SpdyStreamId stream_id, |
- SpdyStreamId parent_id, |
- int weight, |
- bool exclusive) override; |
- void OnAltSvc(SpdyStreamId stream_id, |
- SpdyStringPiece origin, |
- const SpdyAltSvcWireFormat::AlternativeServiceVector& |
- altsvc_vector) override; |
- bool OnUnknownFrame(SpdyStreamId stream_id, uint8_t frame_type) override; |
- |
- protected: |
- SpdyFramerVisitorInterface* visitor() const { return visitor_; } |
- SpdyFramer* framer() const { return framer_; } |
- |
- private: |
- SpdyFramerVisitorInterface* const visitor_; |
- SpdyFramer* const framer_; |
-}; |
- |
-} // namespace net |
- |
-#endif // NET_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ |