11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
22PROMEKI_NAMESPACE_BEGIN
59 PROMEKI_SHARED_FINAL(Benchmark)
62 using Ptr = SharedPtr<Benchmark>;
64 using List = ::promeki::List<Benchmark>;
66 using PtrList = ::promeki::List<Ptr>;
69 using Id = StringRegistry<
"Benchmark">::Item;
78 using EntryList = ::promeki::List<Entry>;
81 Benchmark() =
default;
88 _entries.pushToBack({id, TimeStamp::now()});
97 void stamp(Id
id,
const TimeStamp &ts) {
98 _entries.pushToBack({id, ts});
106 const EntryList &entries()
const {
return _entries; }
112 size_t size()
const {
return _entries.size(); }
118 bool isEmpty()
const {
return _entries.isEmpty(); }
132 double duration(Id fromId, Id toId)
const;