// Copyright 2018 The Fuchsia 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 SRC_LIB_TIMEKEEPER_MONOTONIC_TEST_CLOCK_BASE_H_
#define SRC_LIB_TIMEKEEPER_MONOTONIC_TEST_CLOCK_BASE_H_

#include <lib/fit/function.h>

#include <limits>

#include "src/lib/timekeeper/clock.h"

namespace timekeeper {

// Abstract implementation of |Clock| that takes a time_t generator and ensure
// that every clock is strictly increasing.
class MonotonicTestClockBase : public Clock {
 public:
  MonotonicTestClockBase(fit::function<zx_time_t()> clock);
  ~MonotonicTestClockBase() override;

 private:
  zx_status_t GetUtcTime(zx_time_t* time) const final;
  zx_time_t GetMonotonicTime() const final;

  fit::function<zx_time_t()> clock_;
  mutable zx_time_t last_returned_value_ = std::numeric_limits<zx_time_t>::min();
};

}  // namespace timekeeper

#endif  // SRC_LIB_TIMEKEEPER_MONOTONIC_TEST_CLOCK_BASE_H_
