state_sequencer.h 565 B

12345678910111213141516171819202122232425
  1. #pragma once
  2. #include "stdint.h"
  3. #include <list>
  4. #include <functional>
  5. class TickSequencer {
  6. public:
  7. TickSequencer();
  8. ~TickSequencer();
  9. void tick();
  10. void reset();
  11. void clear();
  12. void do_every_tick(uint32_t tick_count, std::function<void(void)> fn);
  13. void do_after_tick(uint32_t tick_count, std::function<void(void)> fn);
  14. private:
  15. std::list<std::pair<uint32_t, std::function<void(void)> > > list;
  16. std::list<std::pair<uint32_t, std::function<void(void)> > >::iterator list_it;
  17. uint32_t tick_count;
  18. void do_nothing();
  19. };