From 3081e4e1a82a4efd8feff68850c4cc04af230cd7 Mon Sep 17 00:00:00 2001 From: ipknHama Date: Wed, 21 Sep 2016 23:11:06 +0900 Subject: Cleanup include folder into crow subfolder - only crow.h is exposed now --- include/dumb_timer_queue.h | 81 ---------------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 include/dumb_timer_queue.h (limited to 'include/dumb_timer_queue.h') diff --git a/include/dumb_timer_queue.h b/include/dumb_timer_queue.h deleted file mode 100644 index 6b690bb..0000000 --- a/include/dumb_timer_queue.h +++ /dev/null @@ -1,81 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include - -#include "logging.h" - -namespace crow -{ - namespace detail - { - // fast timer queue for fixed tick value. - class dumb_timer_queue - { - public: - using key = std::pair; - - void cancel(key& k) - { - auto self = k.first; - k.first = nullptr; - if (!self) - return; - - unsigned int index = (unsigned int)(k.second - self->step_); - if (index < self->dq_.size()) - self->dq_[index].second = nullptr; - } - - key add(std::function f) - { - dq_.emplace_back(std::chrono::steady_clock::now(), std::move(f)); - int ret = step_+dq_.size()-1; - - CROW_LOG_DEBUG << "timer add inside: " << this << ' ' << ret ; - return {this, ret}; - } - - void process() - { - if (!io_service_) - return; - - auto now = std::chrono::steady_clock::now(); - while(!dq_.empty()) - { - auto& x = dq_.front(); - if (now - x.first < std::chrono::seconds(tick)) - break; - if (x.second) - { - CROW_LOG_DEBUG << "timer call: " << this << ' ' << step_; - // we know that timer handlers are very simple currenty; call here - x.second(); - } - dq_.pop_front(); - step_++; - } - } - - void set_io_service(boost::asio::io_service& io_service) - { - io_service_ = &io_service; - } - - dumb_timer_queue() noexcept - { - } - - private: - - int tick{5}; - boost::asio::io_service* io_service_{}; - std::deque>> dq_; - int step_{}; - }; - } -} -- cgit v1.2.3-54-g00ecf