interval.hpp 824 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <mutex>
  3. #include "yutil/time.h"
  4. namespace ylib {
  5. class interval {
  6. public:
  7. interval(timestamp msec):m_interval_msec(msec),m_pre_msec(0){
  8. m_pre_msec = time::now_msec();
  9. }
  10. ~interval() {}
  11. /// <summary>
  12. /// 是否超市
  13. /// </summary>
  14. /// <returns></returns>
  15. bool isTimeout() {
  16. auto now_msec = time::now_msec();
  17. if (m_pre_msec + m_interval_msec < now_msec)
  18. return true;
  19. return false;
  20. }
  21. void timeout() {
  22. m_pre_msec = time::now_msec() - m_interval_msec - 1;
  23. }
  24. void update() {
  25. m_pre_msec = time::now_msec();
  26. }
  27. private:
  28. timestamp m_interval_msec = 0;
  29. timestamp m_pre_msec = 0;
  30. };
  31. }