61 lines
983 B
C++
61 lines
983 B
C++
#ifndef _VNXPLAT_TIME_H_
|
|
#define _VNXPLAT_TIME_H_
|
|
|
|
#include "int.h"
|
|
#include "export.h"
|
|
|
|
namespace vn {
|
|
namespace xplat {
|
|
|
|
struct vn_proglib_DLLEXPORT TimeStamp
|
|
{
|
|
public:
|
|
TimeStamp();
|
|
|
|
private:
|
|
TimeStamp(int64_t sec, uint64_t usec);
|
|
|
|
public:
|
|
|
|
// \brief Returns a timestamp.
|
|
//
|
|
// \return The timestamp.
|
|
static TimeStamp get();
|
|
|
|
// HACK: Current values are made public until the TimeStamp interface
|
|
// is fully worked out.
|
|
//private:
|
|
public:
|
|
int64_t _sec; // Seconds.
|
|
uint64_t _usec; // Microseconds.
|
|
};
|
|
|
|
/// \brief Provides simple timing capabilities.
|
|
class vn_proglib_DLLEXPORT Stopwatch
|
|
{
|
|
|
|
public:
|
|
|
|
/// \brief Creates a new Stopwatch and starts timing.
|
|
Stopwatch();
|
|
|
|
~Stopwatch();
|
|
|
|
/// \brief Resets the Stopwatch.
|
|
void reset();
|
|
|
|
/// \brief Gets the elapsed time in milliseconds.
|
|
///
|
|
/// \return The elapsed time in milliseconds.
|
|
float elapsedMs();
|
|
|
|
private:
|
|
struct Impl;
|
|
Impl *_pi;
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
#endif
|