Skip to content
Snippets Groups Projects
Commit add199b5 authored by Eric Cano's avatar Eric Cano
Browse files

Added support for increment to timings in TimingsLists.

parent 63542944
Branches
Tags
No related merge requests found
......@@ -31,14 +31,31 @@ void TimingList::addToLog(ScopedParamContainer& spc) {
}
}
void TimingList::insert(const std::string& name, double value) {
push_back(std::make_tuple(name, value));
double& TimingList::at(const std::string& name) {
for (auto &e: *this) {
if (std::get<0>(e) == name) return std::get<1>(e);
}
throw std::out_of_range("In TimingList::at(): no such element.");
}
void TimingList::insertOrIncrement(const std::string& name, double value) {
try {
at(name)+=value;
} catch (std::out_of_range&) {
push_back(std::make_tuple(name, value));
}
}
void TimingList::insOrIncAndReset(const std::string& name, utils::Timer& t) {
insertOrIncrement(name, t.secs(utils::Timer::resetCounter));
}
void TimingList::insertAndReset(const std::string& name, utils::Timer& t) {
push_back(std::make_tuple(name, t.secs(utils::Timer::resetCounter)));
}
TimingList& TimingList::operator+=(const TimingList& other) {
for (auto & ot: other) {
std::string oName;
......
......@@ -32,10 +32,13 @@ class ScopedParamContainer;
class TimingList: public std::list<std::tuple<std::string, double>> {
public:
void insert(const std::string &, double);
void insertOrIncrement(const std::string &, double);
void insOrIncAndReset(const std::string&, utils::Timer &);
void insertAndReset(const std::string&, utils::Timer &);
TimingList & operator+= (const TimingList &);
void addToLog(ScopedParamContainer &);
private:
double & at(const std::string&);
};
}} // namespace cta::log
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment