//===-- Gauge.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_Gauge_h #define PerfTestDriver_Gauge_h #include #include #include "Results.h" namespace lldb_perf { template class Gauge { public: typedef T ValueType; Gauge() {} virtual ~Gauge() {} virtual void Start() = 0; virtual ValueType Stop() = 0; virtual ValueType GetStartValue() const = 0; virtual ValueType GetStopValue() const = 0; virtual ValueType GetDeltaValue() const = 0; }; template Results::ResultSP GetResult(const char *description, T value); template <> Results::ResultSP GetResult(const char *description, double value); template <> Results::ResultSP GetResult(const char *description, uint64_t value); template <> Results::ResultSP GetResult(const char *description, std::string value); } #endif