/* * timemeasurement.h * * Created on: Nov 25, 2011 * Author: muecklgr_local */ #ifndef GLTB_TIMEMEASUREMENT_H_ #define GLTB_TIMEMEASUREMENT_H_ #include #include "timer.h" namespace gltb { /** * Helper class for repeated time measurements including averaging gathered results */ class TimeMeasurement { public: TimeMeasurement() : startOffset(0), maxNumMeasurements(-1) {}; void setMaxNumMeasurements(unsigned int maxNumMeasurements); void reset(); void start(bool continueMeasurement=false); void stop(); void addMeasurement(double time); // add externally made measurement const std::vector &getMeasurements() { return measurements; }; int getNumMeasurements() { return (int)measurements.size(); }; double getAverageTime(int numMeasurements=-1); private: Timer timer; double startOffset; unsigned int maxNumMeasurements; std::vector measurements; }; } #endif /* TIMEMEASUREMENT_H_ */