// Copyright 2017 The Chromium OS 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 HAMMERD_UMA_METRIC_NAMES_H_
#define HAMMERD_UMA_METRIC_NAMES_H_

namespace hammerd {

#define DETACHABLE_BASE_PREFIX "Platform.DetachableBase."

const char kMetricROUpdateResult[] = DETACHABLE_BASE_PREFIX "ROUpdateResult";
const char kMetricRWUpdateResult[] = DETACHABLE_BASE_PREFIX "RWUpdateResult";
const char kMetricPairResult[] = DETACHABLE_BASE_PREFIX "PairResult";
const char kMetricPendingRWUpdate[] = DETACHABLE_BASE_PREFIX "PendingRWUpdate";

// Values in the enums below are persisted to logs. Entries should not
// be renumbered and numeric values should never be reused.

enum class ROUpdateResult {
  kSucceeded = 1,
  kTransferFailed = 2,

  kCount,
};

enum class RWUpdateResult {
  kSucceeded = 1,
  kTransferFailed = 2,
  kInvalidKey = 3,
  kRollbackDisallowed = 4,

  kCount,
};

enum class PairResult {
  kUnknownError = 0,
  kChallengePassed = 1,
  kChallengeFailed = 2,
  kNeedInjectEntropy = 3,

  kCount,
};

enum class PendingRWUpdate {
  kCommunicationError = 0,
  kNoUpdate = 1,
  kCriticalUpdate = 2,
  kNonCriticalUpdate = 3,

  kCount,
};

}  // namespace hammerd
#endif  // HAMMERD_UMA_METRIC_NAMES_H_
