/* * Mirai. Copyright (C) 2024 Vyn * This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only) * The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt */ #pragma once #include "BaseFileSource.h" #include "BaseSource.h" #include "TaskItem.h" #include "TodoMd.h" #include #include #include #include #include #include namespace mirai { class Mirai { public: void loadSource(std::unique_ptr &&resource); void unloadAllSources(); void save(); void deleteTask(const TaskItem &taskItem); std::optional> getSourceByName(const std::string &name); std::vector> &getSources(); const std::vector &getTags(); void reloadTags(); // Returns a non owning pointer to the requested resource or nullptr if not found. BaseSource *getSourceById(int id); private: std::vector> sources_; std::vector tags_; }; } // namespace mirai