turbonss/cxxmph/benchmark.h

33 lines
575 B
C
Raw Normal View History

2011-02-19 00:15:24 +02:00
#ifndef __CXXMPH_BENCHMARK_H__
#define __CXXMPH_BENCHMARK_H__
#include <string>
#include <typeinfo>
namespace cxxmph {
class Benchmark {
public:
Benchmark() {}
virtual ~Benchmark() {}
2011-02-19 00:15:24 +02:00
const std::string& name() { return name_; }
void set_name(const std::string& name) { name_ = name; }
static void Register(Benchmark* bm);
static void RunAll();
protected:
2011-05-24 03:18:24 +03:00
virtual bool SetUp() { return true; };
virtual void Run() = 0;
2011-05-24 03:18:24 +03:00
virtual bool TearDown() { return true; };
2011-02-19 00:15:24 +02:00
private:
std::string name_;
void MeasureRun();
};
} // namespace cxxmph
#endif