3 #include <boost/asio.hpp> 19 using key = std::pair<dumb_timer_queue*, int>;
28 unsigned int index = (
unsigned int)(k.second - self->step_);
29 if (index < self->
dq_.size())
30 self->dq_[index].second =
nullptr;
35 dq_.emplace_back(std::chrono::steady_clock::now(), std::move(f));
47 auto now = std::chrono::steady_clock::now();
50 auto& x =
dq_.front();
51 if (now - x.first < std::chrono::seconds(
tick))
77 std::deque<std::pair<decltype(std::chrono::steady_clock::now()), std::function<void()>>>
dq_;
int step_
Definition: dumb_timer_queue.h:78
void process()
Definition: dumb_timer_queue.h:42
dumb_timer_queue() noexcept
Definition: dumb_timer_queue.h:69
Definition: dumb_timer_queue.h:16
int tick
Definition: dumb_timer_queue.h:75
declaration and default definition for the functions used the API
#define CROW_LOG_DEBUG
Definition: logging.h:139
std::pair< dumb_timer_queue *, int > key
Definition: dumb_timer_queue.h:19
boost::asio::io_service * io_service_
Definition: dumb_timer_queue.h:76
void set_io_service(boost::asio::io_service &io_service)
Definition: dumb_timer_queue.h:64
key add(std::function< void()> f)
Definition: dumb_timer_queue.h:33
void cancel(key &k)
Definition: dumb_timer_queue.h:21
std::deque< std::pair< decltype(std::chrono::steady_clock::now()), std::function< void()> > > dq_
Definition: dumb_timer_queue.h:77