//===-- Timer.h -------------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef __PerfTestDriver__Timer__ #define __PerfTestDriver__Timer__ #include "Gauge.h" #include using namespace std::chrono; namespace lldb_perf { class TimeGauge : public Gauge { public: TimeGauge(); virtual ~TimeGauge() {} void Start(); double Stop(); virtual double GetStartValue() const; virtual double GetStopValue() const; virtual double GetDeltaValue() const; private: enum class State { eNeverUsed, eCounting, eStopped }; typedef high_resolution_clock::time_point TimeType; TimeType m_start; TimeType m_stop; double m_delta; State m_state; TimeType Now(); }; } #endif /* defined(__PerfTestDriver__Timer__) */