/* * 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 */ #ifndef MIRAI_MIRAI_H #define MIRAI_MIRAI_H #include "BaseFileResource.h" #include "TaskItem.h" #include "TodoMd.h" #include "mirai-core/BaseResource.h" #include #include #include #include #include #include namespace mirai { class Mirai { public: void loadResource(std::unique_ptr &&resource); void unloadAllResources(); void save(); void removeTask(const TaskItem *taskItem); std::optional> getResourceByName(const std::string &name); std::vector> &getResources(); const std::vector &getTags(); void reloadTags(); // new stuff // Returns a non owning pointer to the requested resource or nullptr if not found. BaseResource *getResourceById(int id) { if (id >= resources_.size()) { return nullptr; } return resources_.at(id).get(); } private: std::vector> resources_; std::vector tags_; }; } // namespace mirai #endif