Timer.h revision d3a8d6565ff40fd99533f50a085ace806a9300ee
1//===-- Timer.h -------------------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef __PerfTestDriver__Timer__ 11#define __PerfTestDriver__Timer__ 12 13#include "Gauge.h" 14 15#include <chrono> 16 17using namespace std::chrono; 18 19namespace lldb_perf 20{ 21class TimeGauge : public Gauge<double> 22{ 23private: 24 enum class State 25 { 26 eNeverUsed, 27 eCounting, 28 eStopped 29 }; 30 31 typedef high_resolution_clock::time_point TimeType; 32 TimeType m_start; 33 double m_value; 34 State m_state; 35 36 TimeType 37 Now (); 38 39public: 40 TimeGauge (); 41 42 virtual 43 ~TimeGauge () 44 { 45 } 46 47 void 48 Start (); 49 50 double 51 Stop (); 52 53 double 54 GetValue (); 55}; 56} 57 58#endif /* defined(__PerfTestDriver__Timer__) */ 59