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