5#ifndef AthenaMonitoringKernel_MonitoredTimer_h
6#define AthenaMonitoringKernel_MonitoredTimer_h
31 template<
typename unit=std::chrono::microseconds>
41 operator double()
const;
43 virtual double get(
size_t)
const override {
return double(*
this); }
44 virtual std::string
getString([[maybe_unused]]
size_t i)
const override {
return {}; }
46 virtual size_t size()
const override {
return 1; }
58 template<
typename unit>
63 template<
typename unit>
66 template<
typename unit>
69 template<
typename unit>
72 if (stopTime == clock_type::time_point())
73 stopTime = clock_type::now();
74 auto d = std::chrono::duration_cast<unit>(stopTime -
m_startTime);
const std::string & name() const
IMonitoredVariable(std::string name)
virtual bool hasStringRepresentation() const override
indcates that the stored content can be converted to strings
virtual std::string getString(size_t i) const override
clock_type::time_point m_startTime
std::chrono::high_resolution_clock clock_type
Timer & operator=(Timer const &)=delete
virtual double get(size_t) const override
Timer(Timer const &)=delete
clock_type::time_point m_stopTime
virtual size_t size() const override
gives size of vector representation
Generic monitoring tool for athena components.
void checkNamingConvention(std::string_view name)