| #ifndef QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_ | 
 | #define QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_ | 
 |  | 
 | #include "common/platform/api/quiche_export.h" | 
 | #include "spdy/core/header_byte_listener_interface.h" | 
 | #include "spdy/core/spdy_headers_handler_interface.h" | 
 |  | 
 | namespace spdy { | 
 |  | 
 | // Drops all header data, but passes information about header bytes parsed to | 
 | // a listener. | 
 | class QUICHE_EXPORT_PRIVATE NoOpHeadersHandler | 
 |     : public SpdyHeadersHandlerInterface { | 
 |  public: | 
 |   // Does not take ownership of listener. | 
 |   explicit NoOpHeadersHandler(HeaderByteListenerInterface* listener) | 
 |       : listener_(listener) {} | 
 |   NoOpHeadersHandler(const NoOpHeadersHandler&) = delete; | 
 |   NoOpHeadersHandler& operator=(const NoOpHeadersHandler&) = delete; | 
 |   ~NoOpHeadersHandler() override {} | 
 |  | 
 |   // From SpdyHeadersHandlerInterface | 
 |   void OnHeaderBlockStart() override {} | 
 |   void OnHeader(absl::string_view /*key*/, | 
 |                 absl::string_view /*value*/) override {} | 
 |   void OnHeaderBlockEnd(size_t uncompressed_header_bytes, | 
 |                         size_t /* compressed_header_bytes */) override { | 
 |     if (listener_ != nullptr) { | 
 |       listener_->OnHeaderBytesReceived(uncompressed_header_bytes); | 
 |     } | 
 |   } | 
 |  | 
 |  private: | 
 |   HeaderByteListenerInterface* listener_; | 
 | }; | 
 |  | 
 | }  // namespace spdy | 
 |  | 
 | #endif  // QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_ |