orotool/src/timer_base.hpp

44 lines
708 B
C++
Raw Normal View History

#pragma once
#include "eventia/private/context.hpp"
#include "eventia/timer.hpp"
namespace roar11 {
class ThreadPool;
} //namespace roar11
namespace oro {
class Api;
class OriginsDB;
} //namespace oro
namespace duck {
class TimerBase : public eve::Timer {
public:
TimerBase (
const eve::Context& ctx,
double timeout,
roar11::ThreadPool* pool,
oro::Api* oro_api,
oro::OriginsDB* db
);
virtual ~TimerBase() noexcept = default;
virtual void on_timer() override;
protected:
roar11::ThreadPool& pool();
oro::Api& oro_api();
oro::OriginsDB& db();
private:
virtual void fetch_data() = 0;
roar11::ThreadPool* m_pool;
oro::Api* m_oro_api;
oro::OriginsDB* m_db;
};
} //namespace duck