JKSV/source/sys/Task.cpp
2025-10-30 18:11:16 -04:00

40 lines
893 B
C++

#include "sys/Task.hpp"
#include "logging/logger.hpp"
// ---- Construction ----
sys::Task::Task()
: m_isRunning(true) {};
sys::Task::Task(sys::threadpool::JobFunction function, sys::Task::TaskData taskData)
: Task()
{
taskData->task = this;
sys::threadpool::push_job(function, taskData);
}
// ---- Public functions ----
bool sys::Task::is_running() const noexcept { return m_isRunning; }
void sys::Task::complete() noexcept { m_isRunning = false; }
void sys::Task::set_status(std::string_view status)
{
std::lock_guard statusGuard{m_statusLock};
m_status = status;
}
void sys::Task::set_status(std::string &status)
{
std::lock_guard statusGuard{m_statusLock};
m_status = std::move(status);
}
std::string sys::Task::get_status() noexcept
{
std::lock_guard statusGuard{m_statusLock};
return m_status;
}