32 lines
562 B
C++
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
|