• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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