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

#include "net/nqe/network_quality_observation_source.h"

#include "base/logging.h"

namespace net {

namespace {

static constexpr const char* kObservationSourceMapping[] = {
    "Http",
    "Tcp",
    "Quic",
    "HttpCachedEstimate",
    "HttpPlatform",
    "HttpExternalEstimate",
    "TransportCachedEstimate",
    "TransportPlatform"};

static_assert(static_cast<size_t>(NETWORK_QUALITY_OBSERVATION_SOURCE_MAX) ==
                  arraysize(kObservationSourceMapping),
              "unhandled network quality observation source");

}  // namespace

namespace nqe {

namespace internal {

// Returns the string equivalent of |source|.
const char* GetNameForObservationSource(
    NetworkQualityObservationSource source) {
  if (source >= NETWORK_QUALITY_OBSERVATION_SOURCE_MAX) {
    NOTREACHED();
    return "";
  }
  return kObservationSourceMapping[static_cast<size_t>(source)];
}

}  // namespace internal

}  // namespace nqe

}  // namespace net