// Copyright 2017 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.

#ifndef NET_SPDY_SPDY_LOG_UTIL_H_
#define NET_SPDY_SPDY_LOG_UTIL_H_

#include <memory>
#include <string>

#include "base/strings/string_piece.h"
#include "net/base/net_export.h"
#include "net/http/http_log_util.h"
#include "net/log/net_log.h"
#include "net/log/net_log_capture_mode.h"
#include "net/third_party/quiche/src/spdy/core/spdy_header_block.h"

namespace base {
class ListValue;
}  // namespace base

namespace net {

// Given an HTTP/2 GOAWAY frame |debug_data|, returns the elided version
// according to |capture_mode|.
NET_EXPORT_PRIVATE std::string ElideGoAwayDebugDataForNetLog(
    NetLogCaptureMode capture_mode,
    base::StringPiece debug_data);

// Given a spdy::SpdyHeaderBlock, return its base::ListValue representation.
NET_EXPORT_PRIVATE std::unique_ptr<base::ListValue>
ElideSpdyHeaderBlockForNetLog(const spdy::SpdyHeaderBlock& headers,
                              NetLogCaptureMode capture_mode);

// Converts a spdy::SpdyHeaderBlock into NetLog event parameters.
NET_EXPORT_PRIVATE std::unique_ptr<base::Value> SpdyHeaderBlockNetLogCallback(
    const spdy::SpdyHeaderBlock* headers,
    NetLogCaptureMode capture_mode);

}  // namespace net

#endif  // NET_SPDY_SPDY_LOG_UTIL_H_
