xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/spdy/core/no_op_headers_handler.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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