• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 namespace spdy {
8 
RecordingHeadersHandler(SpdyHeadersHandlerInterface * wrapped)9 RecordingHeadersHandler::RecordingHeadersHandler(
10     SpdyHeadersHandlerInterface* wrapped)
11     : wrapped_(wrapped) {}
12 
OnHeaderBlockStart()13 void RecordingHeadersHandler::OnHeaderBlockStart() {
14   block_.clear();
15   if (wrapped_ != nullptr) {
16     wrapped_->OnHeaderBlockStart();
17   }
18 }
19 
OnHeader(absl::string_view key,absl::string_view value)20 void RecordingHeadersHandler::OnHeader(absl::string_view key,
21                                        absl::string_view value) {
22   block_.AppendValueOrAddHeader(key, value);
23   if (wrapped_ != nullptr) {
24     wrapped_->OnHeader(key, value);
25   }
26 }
27 
OnHeaderBlockEnd(size_t uncompressed_header_bytes,size_t compressed_header_bytes)28 void RecordingHeadersHandler::OnHeaderBlockEnd(size_t uncompressed_header_bytes,
29                                                size_t compressed_header_bytes) {
30   uncompressed_header_bytes_ = uncompressed_header_bytes;
31   compressed_header_bytes_ = compressed_header_bytes;
32   if (wrapped_ != nullptr) {
33     wrapped_->OnHeaderBlockEnd(uncompressed_header_bytes,
34                                compressed_header_bytes);
35   }
36 }
37 
38 }  // namespace spdy
39