vancontrolsystems/lib/Timer/TimerManager.cpp

32 lines
562 B
C++

#ifndef TimerManager_cpp
#define TimerManager_cpp
#include <map>
#include <functional>
#include "Timer.cpp"
class TimerManager{
std::map<int, Timer*> _timers;
public:
void add(int id, std::function<void()> callback){
_timers[id] = new Timer(callback);
}
void reset(int id, unsigned long interval){
if (!_timers.count(id))
return;
_timers.find(id)->second->reset(interval);
}
void loop(){
for(auto iterator = _timers.begin(); iterator != _timers.end(); ++iterator)
{
auto timer = iterator->second;
timer->loop();
}
}
};
#endif