/* * Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved. */ #pragma once #include #include namespace nostalgia::studio { enum class TaskState { Running, Done }; class Task: public ox::SignalHandler { public: ox::Signal finished; ~Task() noexcept override = default; virtual TaskState update(nostalgia::core::Context *ctx) noexcept = 0; }; class TaskRunner { private: ox::Vector> m_tasks; public: void update(core::Context *ctx) noexcept; void add(Task *task) noexcept; }; }