diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-09-03 13:32:17 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-10-01 14:31:55 +0200 |
commit | 21ba0c5d4bf8fba15dddd97cd693bad2358b77fd (patch) | |
tree | 91be119f694044dfc1ff9fdc054459e925de9df0 /chromium/net/third_party/quiche/src/http2/adapter/recording_http2_visitor.h | |
parent | 03c549e0392f92c02536d3f86d5e1d8dfa3435ac (diff) | |
download | qtwebengine-chromium-21ba0c5d4bf8fba15dddd97cd693bad2358b77fd.tar.gz |
BASELINE: Update Chromium to 92.0.4515.166
Change-Id: I42a050486714e9e54fc271f2a8939223a02ae364
Diffstat (limited to 'chromium/net/third_party/quiche/src/http2/adapter/recording_http2_visitor.h')
-rw-r--r-- | chromium/net/third_party/quiche/src/http2/adapter/recording_http2_visitor.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/http2/adapter/recording_http2_visitor.h b/chromium/net/third_party/quiche/src/http2/adapter/recording_http2_visitor.h new file mode 100644 index 00000000000..452b45185cb --- /dev/null +++ b/chromium/net/third_party/quiche/src/http2/adapter/recording_http2_visitor.h @@ -0,0 +1,80 @@ +#ifndef QUICHE_HTTP2_ADAPTER_RECORDING_HTTP2_VISITOR_H_ +#define QUICHE_HTTP2_ADAPTER_RECORDING_HTTP2_VISITOR_H_ + +#include <list> +#include <string> + +#include "http2/adapter/http2_visitor_interface.h" +#include "common/platform/api/quiche_test.h" + +namespace http2 { +namespace adapter { +namespace test { + +// A visitor implementation that records the sequence of callbacks it receives. +class RecordingHttp2Visitor : public Http2VisitorInterface { + public: + using Event = std::string; + using EventSequence = std::list<Event>; + + // From Http2VisitorInterface + void OnConnectionError() override; + void OnFrameHeader(Http2StreamId stream_id, + size_t length, + uint8_t type, + uint8_t flags) override; + void OnSettingsStart() override; + void OnSetting(Http2Setting setting) override; + void OnSettingsEnd() override; + void OnSettingsAck() override; + void OnBeginHeadersForStream(Http2StreamId stream_id) override; + void OnHeaderForStream(Http2StreamId stream_id, + absl::string_view name, + absl::string_view value) override; + void OnEndHeadersForStream(Http2StreamId stream_id) override; + void OnBeginDataForStream(Http2StreamId stream_id, + size_t payload_length) override; + void OnDataForStream(Http2StreamId stream_id, + absl::string_view data) override; + void OnEndStream(Http2StreamId stream_id) override; + void OnRstStream(Http2StreamId stream_id, Http2ErrorCode error_code) override; + void OnCloseStream(Http2StreamId stream_id, + Http2ErrorCode error_code) override; + void OnPriorityForStream(Http2StreamId stream_id, + Http2StreamId parent_stream_id, + int weight, + bool exclusive) override; + void OnPing(Http2PingId ping_id, bool is_ack) override; + void OnPushPromiseForStream(Http2StreamId stream_id, + Http2StreamId promised_stream_id) override; + void OnGoAway(Http2StreamId last_accepted_stream_id, + Http2ErrorCode error_code, + absl::string_view opaque_data) override; + void OnWindowUpdate(Http2StreamId stream_id, int window_increment) override; + void OnReadyToSendDataForStream(Http2StreamId stream_id, + char* destination_buffer, + size_t length, + ssize_t* written, + bool* end_stream) override; + void OnReadyToSendMetadataForStream(Http2StreamId stream_id, + char* buffer, + size_t length, + ssize_t* written) override; + void OnBeginMetadataForStream(Http2StreamId stream_id, + size_t payload_length) override; + void OnMetadataForStream(Http2StreamId stream_id, + absl::string_view metadata) override; + void OnMetadataEndForStream(Http2StreamId stream_id) override; + + const EventSequence& GetEventSequence() const { return events_; } + void Clear() { events_.clear(); } + + private: + EventSequence events_; +}; + +} // namespace test +} // namespace adapter +} // namespace http2 + +#endif // QUICHE_HTTP2_ADAPTER_RECORDING_HTTP2_VISITOR_H_ |