orotool/src/timer_items.cpp
2020-08-09 20:47:04 +01:00

28 lines
700 B
C++

#include "timer_items.hpp"
#include "eventia/private/context.hpp"
#include "roar11/ThreadPool.hpp"
#include <cassert>
namespace duck {
TimerItems::TimerItems (const eve::Context& ctx, double timeout, roar11::ThreadPool* pool) :
eve::Timer(timeout, ctx),
m_pool(pool)
{
assert(m_pool);
}
void TimerItems::on_timer() {
m_pool->submit(&TimerItems::fetch_data, this);
}
void TimerItems::fetch_data() {
using namespace std::chrono_literals;
std::cout << "Timer elapsed! Doing fake work...\n";
std::this_thread::sleep_for(5s);
const double new_delay = 5.0;
std::cout << "Now starting next timer for " << new_delay << " seconds\n";
set_timer(new_delay);
}
} //namespace duck