// Copyright 2018 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_THIRD_PARTY_QUIC_PLATFORM_IMPL_QUIC_CLIENT_STATS_IMPL_H_
#define NET_THIRD_PARTY_QUIC_PLATFORM_IMPL_QUIC_CLIENT_STATS_IMPL_H_

#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"

namespace quic {

// By convention, all QUIC histograms are prefixed by "Net.".
#define QUIC_HISTOGRAM_NAME(raw_name) "Net." raw_name

#define QUIC_CLIENT_HISTOGRAM_ENUM_IMPL(name, sample, enum_size, docstring) \
  UMA_HISTOGRAM_ENUMERATION(QUIC_HISTOGRAM_NAME(name), sample, enum_size)

#define QUIC_CLIENT_HISTOGRAM_BOOL_IMPL(name, sample, docstring) \
  UMA_HISTOGRAM_BOOLEAN(QUIC_HISTOGRAM_NAME(name), sample)

#define QUIC_CLIENT_HISTOGRAM_TIMES_IMPL(name, sample, min, max, bucket_count, \
                                         docstring)                            \
  UMA_HISTOGRAM_CUSTOM_TIMES(                                                  \
      QUIC_HISTOGRAM_NAME(name),                                               \
      base::TimeDelta::FromMicroseconds(sample.ToMicroseconds()),              \
      base::TimeDelta::FromMicroseconds(min.ToMicroseconds()),                 \
      base::TimeDelta::FromMicroseconds(max.ToMicroseconds()), bucket_count)

#define QUIC_CLIENT_HISTOGRAM_COUNTS_IMPL(name, sample, min, max,          \
                                          bucket_count, docstring)         \
  UMA_HISTOGRAM_CUSTOM_COUNTS(QUIC_HISTOGRAM_NAME(name), sample, min, max, \
                              bucket_count)

inline void QuicClientSparseHistogramImpl(const std::string& name, int sample) {
  base::UmaHistogramSparse(name, sample);
}

}  // namespace quic

#endif  // NET_THIRD_PARTY_QUIC_PLATFORM_IMPL_QUIC_CLIENT_STATS_IMPL_H_
