#ifndef TASK_RUNNER_HH #define TASK_RUNNER_HH #include #include class Looper; class TaskRunner { public: virtual ~TaskRunner() = default; static std::unique_ptr create(std::shared_ptr looper); static std::unique_ptr create(size_t threads = 1); virtual void post(std::function callback) = 0; protected: TaskRunner() = default; TaskRunner(TaskRunner const&) = delete; TaskRunner& operator=(TaskRunner const&) = delete; }; #endif // TASK_RUNNER_HH