/// \file timing.h
/// Utilities for handling time and timestamps.

#pragma once
#include <stdint.h>
#include <string>
#include <stdint.h>

namespace Util {
  void wait(int64_t ms); ///< Sleeps for the indicated amount of milliseconds or longer.
  void sleep(int64_t ms); ///< Sleeps for roughly the indicated amount of milliseconds.
  uint64_t getMS(); ///< Gets the current time in milliseconds.
  uint64_t bootSecs(); ///< Gets the current system uptime in seconds.
  uint64_t bootMS(); ///< Gets the current system uptime in milliseconds.
  uint64_t getMicros();///<Gets the current time in microseconds
  uint64_t getMicros(uint64_t previous);///<Gets the time difference in microseconds.
  uint64_t getNTP();
  uint64_t epoch(); ///< Gets the amount of seconds since 01/01/1970.
  std::string getUTCString(uint64_t epoch = 0);
}