• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2016 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 // SpdyNoOpVisitor implements several of the visitor and handler interfaces
6 // to make it easier to write tests that need to provide instances. Other
7 // interfaces can be added as needed.
8 
9 #ifndef QUICHE_SPDY_CORE_SPDY_NO_OP_VISITOR_H_
10 #define QUICHE_SPDY_CORE_SPDY_NO_OP_VISITOR_H_
11 
12 #include <cstdint>
13 
14 #include "absl/strings/string_view.h"
15 #include "quiche/common/platform/api/quiche_export.h"
16 #include "quiche/spdy/core/http2_frame_decoder_adapter.h"
17 #include "quiche/spdy/core/spdy_protocol.h"
18 
19 namespace spdy {
20 
21 class QUICHE_EXPORT SpdyNoOpVisitor : public SpdyFramerVisitorInterface,
22                                       public SpdyFramerDebugVisitorInterface,
23                                       public SpdyHeadersHandlerInterface {
24  public:
25   SpdyNoOpVisitor();
26   ~SpdyNoOpVisitor() override;
27 
28   // SpdyFramerVisitorInterface methods:
OnError(http2::Http2DecoderAdapter::SpdyFramerError,std::string)29   void OnError(http2::Http2DecoderAdapter::SpdyFramerError /*error*/,
30                std::string /*detailed_error*/) override {}
31   SpdyHeadersHandlerInterface* OnHeaderFrameStart(
32       SpdyStreamId stream_id) override;
OnHeaderFrameEnd(SpdyStreamId)33   void OnHeaderFrameEnd(SpdyStreamId /*stream_id*/) override {}
OnDataFrameHeader(SpdyStreamId,size_t,bool)34   void OnDataFrameHeader(SpdyStreamId /*stream_id*/, size_t /*length*/,
35                          bool /*fin*/) override {}
OnStreamFrameData(SpdyStreamId,const char *,size_t)36   void OnStreamFrameData(SpdyStreamId /*stream_id*/, const char* /*data*/,
37                          size_t /*len*/) override {}
OnStreamEnd(SpdyStreamId)38   void OnStreamEnd(SpdyStreamId /*stream_id*/) override {}
OnStreamPadding(SpdyStreamId,size_t)39   void OnStreamPadding(SpdyStreamId /*stream_id*/, size_t /*len*/) override {}
OnRstStream(SpdyStreamId,SpdyErrorCode)40   void OnRstStream(SpdyStreamId /*stream_id*/,
41                    SpdyErrorCode /*error_code*/) override {}
OnSetting(SpdySettingsId,uint32_t)42   void OnSetting(SpdySettingsId /*id*/, uint32_t /*value*/) override {}
OnPing(SpdyPingId,bool)43   void OnPing(SpdyPingId /*unique_id*/, bool /*is_ack*/) override {}
OnSettingsEnd()44   void OnSettingsEnd() override {}
OnSettingsAck()45   void OnSettingsAck() override {}
OnGoAway(SpdyStreamId,SpdyErrorCode)46   void OnGoAway(SpdyStreamId /*last_accepted_stream_id*/,
47                 SpdyErrorCode /*error_code*/) override {}
OnHeaders(SpdyStreamId,size_t,bool,int,SpdyStreamId,bool,bool,bool)48   void OnHeaders(SpdyStreamId /*stream_id*/, size_t /*payload_length*/,
49                  bool /*has_priority*/, int /*weight*/,
50                  SpdyStreamId /*parent_stream_id*/, bool /*exclusive*/,
51                  bool /*fin*/, bool /*end*/) override {}
OnWindowUpdate(SpdyStreamId,int)52   void OnWindowUpdate(SpdyStreamId /*stream_id*/,
53                       int /*delta_window_size*/) override {}
OnPushPromise(SpdyStreamId,SpdyStreamId,bool)54   void OnPushPromise(SpdyStreamId /*stream_id*/,
55                      SpdyStreamId /*promised_stream_id*/,
56                      bool /*end*/) override {}
OnContinuation(SpdyStreamId,size_t,bool)57   void OnContinuation(SpdyStreamId /*stream_id*/, size_t /*payload_size*/,
58                       bool /*end*/) override {}
OnAltSvc(SpdyStreamId,absl::string_view,const SpdyAltSvcWireFormat::AlternativeServiceVector &)59   void OnAltSvc(SpdyStreamId /*stream_id*/, absl::string_view /*origin*/,
60                 const SpdyAltSvcWireFormat::AlternativeServiceVector&
61                 /*altsvc_vector*/) override {}
OnPriority(SpdyStreamId,SpdyStreamId,int,bool)62   void OnPriority(SpdyStreamId /*stream_id*/, SpdyStreamId /*parent_stream_id*/,
63                   int /*weight*/, bool /*exclusive*/) override {}
OnPriorityUpdate(SpdyStreamId,absl::string_view)64   void OnPriorityUpdate(SpdyStreamId /*prioritized_stream_id*/,
65                         absl::string_view /*priority_field_value*/) override {}
66   bool OnUnknownFrame(SpdyStreamId /*stream_id*/,
67                       uint8_t /*frame_type*/) override;
OnUnknownFrameStart(SpdyStreamId,size_t,uint8_t,uint8_t)68   void OnUnknownFrameStart(SpdyStreamId /*stream_id*/, size_t /*length*/,
69                            uint8_t /*type*/, uint8_t /*flags*/) override {}
OnUnknownFramePayload(SpdyStreamId,absl::string_view)70   void OnUnknownFramePayload(SpdyStreamId /*stream_id*/,
71                              absl::string_view /*payload*/) override {}
72 
73   // SpdyFramerDebugVisitorInterface methods:
OnSendCompressedFrame(SpdyStreamId,SpdyFrameType,size_t,size_t)74   void OnSendCompressedFrame(SpdyStreamId /*stream_id*/, SpdyFrameType /*type*/,
75                              size_t /*payload_len*/,
76                              size_t /*frame_len*/) override {}
OnReceiveCompressedFrame(SpdyStreamId,SpdyFrameType,size_t)77   void OnReceiveCompressedFrame(SpdyStreamId /*stream_id*/,
78                                 SpdyFrameType /*type*/,
79                                 size_t /*frame_len*/) override {}
80 
81   // SpdyHeadersHandlerInterface methods:
OnHeaderBlockStart()82   void OnHeaderBlockStart() override {}
OnHeader(absl::string_view,absl::string_view)83   void OnHeader(absl::string_view /*key*/,
84                 absl::string_view /*value*/) override {}
OnHeaderBlockEnd(size_t,size_t)85   void OnHeaderBlockEnd(size_t /* uncompressed_header_bytes */,
86                         size_t /* compressed_header_bytes */) override {}
87 };
88 
89 }  // namespace spdy
90 
91 #endif  // QUICHE_SPDY_CORE_SPDY_NO_OP_VISITOR_H_
92