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)14RecordingHeadersHandler::RecordingHeadersHandler( 15 SpdyHeadersHandlerInterface* wrapped) 16 : wrapped_(wrapped) {} 17 OnHeaderBlockStart()18void RecordingHeadersHandler::OnHeaderBlockStart() { 19 block_.clear(); 20 if (wrapped_ != nullptr) { 21 wrapped_->OnHeaderBlockStart(); 22 } 23 } 24 OnHeader(absl::string_view key,absl::string_view value)25void 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)33void 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