#pragma once #include "AbstractTask.h" #include "AsstDef.h" namespace asst { // 流程任务,按照配置文件里的设置的流程运行 class ProcessTask : public AbstractTask { public: using AbstractTask::AbstractTask; ProcessTask(const AbstractTask& abs, std::vector tasks_name); ProcessTask(AbstractTask&& abs, std::vector tasks_name) noexcept; virtual ~ProcessTask() = default; void set_tasks(std::vector tasks_name) noexcept { m_cur_tasks_name = std::move(tasks_name); } void set_times_limit(std::string name, int limit) { m_times_limit.emplace(std::move(name), limit); } protected: virtual bool _run() override; void exec_click_task(const Rect& matched_rect); void exec_swipe_task(ProcessTaskAction action); std::vector m_cur_tasks_name; std::unordered_map m_times_limit; std::unordered_map m_exec_times; }; }