1 #ifndef QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_ 2 #define QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_ 3 4 #include "quiche/common/platform/api/quiche_export.h" 5 #include "quiche/spdy/core/header_byte_listener_interface.h" 6 #include "quiche/spdy/core/spdy_headers_handler_interface.h" 7 8 namespace spdy { 9 10 // Drops all header data, but passes information about header bytes parsed to 11 // a listener. 12 class QUICHE_EXPORT NoOpHeadersHandler : public SpdyHeadersHandlerInterface { 13 public: 14 // Does not take ownership of listener. NoOpHeadersHandler(HeaderByteListenerInterface * listener)15 explicit NoOpHeadersHandler(HeaderByteListenerInterface* listener) 16 : listener_(listener) {} 17 NoOpHeadersHandler(const NoOpHeadersHandler&) = delete; 18 NoOpHeadersHandler& operator=(const NoOpHeadersHandler&) = delete; ~NoOpHeadersHandler()19 ~NoOpHeadersHandler() override {} 20 21 // From SpdyHeadersHandlerInterface OnHeaderBlockStart()22 void OnHeaderBlockStart() override {} OnHeader(absl::string_view,absl::string_view)23 void OnHeader(absl::string_view /*key*/, 24 absl::string_view /*value*/) override {} OnHeaderBlockEnd(size_t uncompressed_header_bytes,size_t)25 void OnHeaderBlockEnd(size_t uncompressed_header_bytes, 26 size_t /* compressed_header_bytes */) override { 27 if (listener_ != nullptr) { 28 listener_->OnHeaderBytesReceived(uncompressed_header_bytes); 29 } 30 } 31 32 private: 33 HeaderByteListenerInterface* listener_; 34 }; 35 36 } // namespace spdy 37 38 #endif // QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_ 39