text: #ifndef TIMER_MANAGER_H
  #define TIMER_MANAGER_H
  
  #include "timer_defs.h"
  #include "abstract_timer.h"
  
  #include <vector>
  #include <boost/bind/bind.hpp>
  #include <unordered_map>
  
  
  class TimerManager : public AbstractTimer
  {
  public:
      TimerManager();
      ~TimerManager() = default;
      TimerManager(const TimerManager&) = delete;
      TimerManager& operator= (const TimerManager&) = delete;
  
      void schedule_timer(unsigned int period, unsigned int timerId) override;
      void handle_timeout(unsigned int timerId) override;
  
  private:
      void handle_expire(unsigned int timerId) noexcept;
  
      std::unordered_map<unsigned int, TimerInfo> _timerQueue;
  };
  
  
  #endif 