xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/spdy/core/recording_headers_handler.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright (c) 2020 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 
5 #include "quiche/spdy/core/recording_headers_handler.h"
6 
7 #include <cstddef>
8 
9 #include "absl/strings/string_view.h"
10 #include "quiche/spdy/core/spdy_headers_handler_interface.h"
11 
12 namespace spdy {
13 
RecordingHeadersHandler(SpdyHeadersHandlerInterface * wrapped)14 RecordingHeadersHandler::RecordingHeadersHandler(
15     SpdyHeadersHandlerInterface* wrapped)
16     : wrapped_(wrapped) {}
17 
OnHeaderBlockStart()18 void RecordingHeadersHandler::OnHeaderBlockStart() {
19   block_.clear();
20   if (wrapped_ != nullptr) {
21     wrapped_->OnHeaderBlockStart();
22   }
23 }
24 
OnHeader(absl::string_view key,absl::string_view value)25 void RecordingHeadersHandler::OnHeader(absl::string_view key,
26                                        absl::string_view value) {
27   block_.AppendValueOrAddHeader(key, value);
28   if (wrapped_ != nullptr) {
29     wrapped_->OnHeader(key, value);
30   }
31 }
32 
OnHeaderBlockEnd(size_t uncompressed_header_bytes,size_t compressed_header_bytes)33 void RecordingHeadersHandler::OnHeaderBlockEnd(size_t uncompressed_header_bytes,
34                                                size_t compressed_header_bytes) {
35   uncompressed_header_bytes_ = uncompressed_header_bytes;
36   compressed_header_bytes_ = compressed_header_bytes;
37   if (wrapped_ != nullptr) {
38     wrapped_->OnHeaderBlockEnd(uncompressed_header_bytes,
39                                compressed_header_bytes);
40   }
41 }
42 
43 }  // namespace spdy
44