Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. //In .h
  2. class timer_s {
  3.     int interval;
  4.     int end_time;
  5.     bool repeat;
  6.     bool finished;
  7. public:
  8.     timer_s(int interval, bool repeat);
  9.     bool done();
  10. };
  11.  
  12. //In .cpp
  13. timer_s::timer_s(int interval, bool repeat) : interval(interval), repeat(repeat) {
  14.     end_time = ::time(NULL) + interval;
  15. }
  16. bool timer_s::done() {
  17.     bool done = ::time(NULL) >= end_time && !finished;
  18.     if (done) {
  19.         if(repeat) end_time = ::time(NULL) + interval;
  20.         else finished = true;
  21.     }
  22.     return done;
  23. }
  24.  
  25. //Usage
  26. while (true) {
  27.     static timer_s timer(1, true);
  28.     if (timer.done()) {
  29.         //will print "done" every 1 second
  30.         cout << "done" << endl;
  31.     }
  32. }