refactor.重构添加任务接口

This commit is contained in:
MistEO
2022-03-08 23:57:37 +08:00
parent 6be8a43c1a
commit a1fb78cc32
37 changed files with 447 additions and 524 deletions

View File

@@ -0,0 +1,73 @@
#include "PackageTask.h"
#include "Resource.h"
bool asst::PackageTask::run()
{
runned = true;
const auto task_delay = Resrc.cfg().get_options().task_delay;
for (auto task_ptr : m_subtasks) {
if (need_exit()) {
return false;
}
task_ptr->set_exit_flag(m_exit_flag)
.set_ctrler(m_ctrler)
.set_status(m_status)
.set_task_data(m_task_data);
if (!task_ptr->run()) {
return false;
}
sleep(task_delay);
}
return true;
}
asst::AbstractTask& asst::PackageTask::set_exit_flag(bool* exit_flag) noexcept
{
AbstractTask::set_exit_flag(exit_flag);
for (auto&& sub : m_subtasks) {
sub->set_exit_flag(exit_flag);
}
return *this;
}
asst::AbstractTask& asst::PackageTask::set_retry_times(int times) noexcept
{
AbstractTask::set_retry_times(times);
for (auto&& sub : m_subtasks) {
sub->set_retry_times(times);
}
return *this;
}
asst::AbstractTask& asst::PackageTask::set_ctrler(std::shared_ptr<Controller> ctrler) noexcept
{
AbstractTask::set_ctrler(ctrler);
for (auto&& sub : m_subtasks) {
sub->set_ctrler(ctrler);
}
return *this;
}
asst::AbstractTask& asst::PackageTask::set_status(std::shared_ptr<RuntimeStatus> status) noexcept
{
AbstractTask::set_status(status);
for (auto&& sub : m_subtasks) {
sub->set_status(status);
}
return *this;
}
asst::AbstractTask& asst::PackageTask::set_task_data(std::shared_ptr<TaskData> task_data) noexcept
{
AbstractTask::set_task_data(task_data);
for (auto&& sub : m_subtasks) {
sub->set_task_data(task_data);
}
return *this;
}