quic_http3_logger.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // Copyright (c) 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef NET_QUIC_QUIC_HTTP3_LOGGER_H_
  5. #define NET_QUIC_QUIC_HTTP3_LOGGER_H_
  6. #include <stddef.h>
  7. #include "base/timer/timer.h"
  8. #include "net/log/net_log_with_source.h"
  9. #include "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_session.h"
  10. namespace net {
  11. // This class is a debug visitor of a quic::QuicSpdySession which logs events
  12. // to |net_log| and records histograms.
  13. class NET_EXPORT_PRIVATE QuicHttp3Logger : public quic::Http3DebugVisitor {
  14. public:
  15. explicit QuicHttp3Logger(const NetLogWithSource& net_log);
  16. QuicHttp3Logger(const QuicHttp3Logger&) = delete;
  17. QuicHttp3Logger& operator=(const QuicHttp3Logger&) = delete;
  18. ~QuicHttp3Logger() override;
  19. // Implementation of Http3DebugVisitor.
  20. void OnControlStreamCreated(quic::QuicStreamId stream_id) override;
  21. void OnQpackEncoderStreamCreated(quic::QuicStreamId stream_id) override;
  22. void OnQpackDecoderStreamCreated(quic::QuicStreamId stream_id) override;
  23. void OnPeerControlStreamCreated(quic::QuicStreamId stream_id) override;
  24. void OnPeerQpackEncoderStreamCreated(quic::QuicStreamId stream_id) override;
  25. void OnPeerQpackDecoderStreamCreated(quic::QuicStreamId stream_id) override;
  26. void OnSettingsFrameReceived(const quic::SettingsFrame& frame) override;
  27. void OnSettingsFrameResumed(const quic::SettingsFrame& frame) override;
  28. void OnGoAwayFrameReceived(const quic::GoAwayFrame& frame) override;
  29. void OnPriorityUpdateFrameReceived(
  30. const quic::PriorityUpdateFrame& frame) override;
  31. void OnDataFrameReceived(quic::QuicStreamId stream_id,
  32. quic::QuicByteCount payload_length) override;
  33. void OnHeadersFrameReceived(
  34. quic::QuicStreamId stream_id,
  35. quic::QuicByteCount compressed_headers_length) override;
  36. void OnHeadersDecoded(quic::QuicStreamId stream_id,
  37. quic::QuicHeaderList headers) override;
  38. void OnUnknownFrameReceived(quic::QuicStreamId stream_id,
  39. uint64_t frame_type,
  40. quic::QuicByteCount payload_length) override;
  41. void OnSettingsFrameSent(const quic::SettingsFrame& frame) override;
  42. void OnGoAwayFrameSent(quic::QuicStreamId stream_id) override;
  43. void OnPriorityUpdateFrameSent(
  44. const quic::PriorityUpdateFrame& frame) override;
  45. void OnDataFrameSent(quic::QuicStreamId stream_id,
  46. quic::QuicByteCount payload_length) override;
  47. void OnHeadersFrameSent(quic::QuicStreamId stream_id,
  48. const spdy::Http2HeaderBlock& header_block) override;
  49. private:
  50. NetLogWithSource net_log_;
  51. };
  52. } // namespace net
  53. #endif // NET_QUIC_QUIC_HTTP3_LOGGER_H_