| // Copyright (c) 2020 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "spdy/core/recording_headers_handler.h" | 
 |  | 
 | namespace spdy { | 
 |  | 
 | RecordingHeadersHandler::RecordingHeadersHandler( | 
 |     SpdyHeadersHandlerInterface* wrapped) | 
 |     : wrapped_(wrapped) {} | 
 |  | 
 | void RecordingHeadersHandler::OnHeaderBlockStart() { | 
 |   block_.clear(); | 
 |   if (wrapped_ != nullptr) { | 
 |     wrapped_->OnHeaderBlockStart(); | 
 |   } | 
 | } | 
 |  | 
 | void RecordingHeadersHandler::OnHeader(absl::string_view key, | 
 |                                        absl::string_view value) { | 
 |   block_.AppendValueOrAddHeader(key, value); | 
 |   if (wrapped_ != nullptr) { | 
 |     wrapped_->OnHeader(key, value); | 
 |   } | 
 | } | 
 |  | 
 | void RecordingHeadersHandler::OnHeaderBlockEnd(size_t uncompressed_header_bytes, | 
 |                                                size_t compressed_header_bytes) { | 
 |   uncompressed_header_bytes_ = uncompressed_header_bytes; | 
 |   compressed_header_bytes_ = compressed_header_bytes; | 
 |   if (wrapped_ != nullptr) { | 
 |     wrapped_->OnHeaderBlockEnd(uncompressed_header_bytes, | 
 |                                compressed_header_bytes); | 
 |   } | 
 | } | 
 |  | 
 | }  // namespace spdy |