// Copyright (c) 2013 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 P2P_COMMON_CLOCK_INTERFACE_H__
#define P2P_COMMON_CLOCK_INTERFACE_H__

#include <base/time/time.h>

namespace p2p {

namespace common {

// TODO(deymo): Move this class to libchromeos and merge it with the one in
// update_engine.

// The clock interface allows access to some system time-related functions.
class ClockInterface {
 public:
  // Suspends the execution of the calling thread for the time
  // indicated by |duration|.
  virtual void Sleep(const base::TimeDelta& duration) = 0;

  // Returns monotonic time since some unspecified starting point. It
  // is not increased when the system is sleeping nor is it affected
  // by NTP or the user changing the time.
  //
  // (This is a simple wrapper around clock_gettime(2) / CLOCK_MONOTONIC_RAW.)
  virtual base::Time GetMonotonicTime() = 0;

  virtual ~ClockInterface() {}
};

}  // namespace common

}  // namespace p2p

#endif  // P2P_COMMON_CLOCK_INTERFACE_H__
