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 "net/third_party/quiche/src/spdy/core/http2_frame_decoder_adapter.h" 16 #include "net/third_party/quiche/src/spdy/core/spdy_protocol.h" 17 18 namespace spdy { 19 namespace test { 20 21 class 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*/, 35 size_t /*length*/, 36 bool /*fin*/) override {} OnStreamFrameData(SpdyStreamId,const char *,size_t)37 void OnStreamFrameData(SpdyStreamId /*stream_id*/, 38 const char* /*data*/, 39 size_t /*len*/) override {} OnStreamEnd(SpdyStreamId)40 void OnStreamEnd(SpdyStreamId /*stream_id*/) override {} OnStreamPadding(SpdyStreamId,size_t)41 void OnStreamPadding(SpdyStreamId /*stream_id*/, size_t /*len*/) override {} OnRstStream(SpdyStreamId,SpdyErrorCode)42 void OnRstStream(SpdyStreamId /*stream_id*/, 43 SpdyErrorCode /*error_code*/) override {} OnSetting(SpdySettingsId,uint32_t)44 void OnSetting(SpdySettingsId /*id*/, uint32_t /*value*/) override {} OnPing(SpdyPingId,bool)45 void OnPing(SpdyPingId /*unique_id*/, bool /*is_ack*/) override {} OnSettingsEnd()46 void OnSettingsEnd() override {} OnSettingsAck()47 void OnSettingsAck() override {} OnGoAway(SpdyStreamId,SpdyErrorCode)48 void OnGoAway(SpdyStreamId /*last_accepted_stream_id*/, 49 SpdyErrorCode /*error_code*/) override {} OnHeaders(SpdyStreamId,bool,int,SpdyStreamId,bool,bool,bool)50 void OnHeaders(SpdyStreamId /*stream_id*/, 51 bool /*has_priority*/, 52 int /*weight*/, 53 SpdyStreamId /*parent_stream_id*/, 54 bool /*exclusive*/, 55 bool /*fin*/, 56 bool /*end*/) override {} OnWindowUpdate(SpdyStreamId,int)57 void OnWindowUpdate(SpdyStreamId /*stream_id*/, 58 int /*delta_window_size*/) override {} OnPushPromise(SpdyStreamId,SpdyStreamId,bool)59 void OnPushPromise(SpdyStreamId /*stream_id*/, 60 SpdyStreamId /*promised_stream_id*/, 61 bool /*end*/) override {} OnContinuation(SpdyStreamId,bool)62 void OnContinuation(SpdyStreamId /*stream_id*/, bool /*end*/) override {} OnAltSvc(SpdyStreamId,absl::string_view,const SpdyAltSvcWireFormat::AlternativeServiceVector &)63 void OnAltSvc(SpdyStreamId /*stream_id*/, 64 absl::string_view /*origin*/, 65 const SpdyAltSvcWireFormat::AlternativeServiceVector& 66 /*altsvc_vector*/) override {} OnPriority(SpdyStreamId,SpdyStreamId,int,bool)67 void OnPriority(SpdyStreamId /*stream_id*/, 68 SpdyStreamId /*parent_stream_id*/, 69 int /*weight*/, 70 bool /*exclusive*/) override {} 71 bool OnUnknownFrame(SpdyStreamId /*stream_id*/, 72 uint8_t /*frame_type*/) override; 73 74 // SpdyFramerDebugVisitorInterface methods: OnSendCompressedFrame(SpdyStreamId,SpdyFrameType,size_t,size_t)75 void OnSendCompressedFrame(SpdyStreamId /*stream_id*/, 76 SpdyFrameType /*type*/, 77 size_t /*payload_len*/, 78 size_t /*frame_len*/) override {} OnReceiveCompressedFrame(SpdyStreamId,SpdyFrameType,size_t)79 void OnReceiveCompressedFrame(SpdyStreamId /*stream_id*/, 80 SpdyFrameType /*type*/, 81 size_t /*frame_len*/) override {} 82 83 // SpdyHeadersHandlerInterface methods: OnHeaderBlockStart()84 void OnHeaderBlockStart() override {} OnHeader(absl::string_view,absl::string_view)85 void OnHeader(absl::string_view /*key*/, 86 absl::string_view /*value*/) override {} OnHeaderBlockEnd(size_t,size_t)87 void OnHeaderBlockEnd(size_t /* uncompressed_header_bytes */, 88 size_t /* compressed_header_bytes */) override {} 89 }; 90 91 } // namespace test 92 } // namespace spdy 93 94 #endif // QUICHE_SPDY_CORE_SPDY_NO_OP_VISITOR_H_ 95