#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; virtual bool run() override; ProcessTask& set_tasks(std::vector tasks_name) noexcept; ProcessTask& set_times_limit(std::string name, int limit); ProcessTask& set_rear_delay(std::string name, int delay); protected: virtual bool _run() override; void exec_click_task(const Rect& matched_rect); void exec_swipe_task(ProcessTaskAction action); std::shared_ptr m_cur_task_ptr; std::vector m_cur_tasks_name; std::unordered_map m_rear_delay; std::unordered_map m_times_limit; std::unordered_map m_exec_times; }; }