#pragma once
/*
Copyright (c) 2003-2021 Tommi Junttila
Released under the GNU Lesser General Public License version 3.
This file is part of bliss.
bliss is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, version 3 of the License.
bliss is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with bliss. If not, see .
*/
#include
namespace bliss {
/**
* \brief A simple helper class for measuring elapsed time.
*/
class Timer
{
std::chrono::high_resolution_clock::time_point start_time_;
public:
/**
* \brief Create and start a new timer.
*/
Timer() {
reset();
}
/**
* \brief Reset the timer.
*/
void reset() {
start_time_ = std::chrono::high_resolution_clock::now();
}
/**
* \brief Get the time (in seconds) elapsed since
* the creation or the last reset() call of the timer.
*/
double get_duration() const {
return std::chrono::duration_cast >(std::chrono::high_resolution_clock::now() - start_time_).count();
}
};
} // namespace bliss