#pragma once #include "AbstractConfiger.h" #include #include #include namespace asst { struct TaskInfo; class TaskData : public AbstractConfiger { public: TaskData(const TaskData&) = delete; TaskData(TaskData&&) = delete; virtual ~TaskData() = default; static TaskData& get_instance() noexcept { static TaskData unique_instance; return unique_instance; } const std::unordered_set& get_templ_required() const noexcept; std::shared_ptr get(const std::string& name) const noexcept; std::shared_ptr get(const std::string& name); protected: TaskData() = default; virtual bool parse(const json::value& json); std::unordered_map> m_all_tasks_info; std::unordered_set m_templ_required; }; static auto& Task = TaskData::get_instance(); }