Rework mirai core

This commit is contained in:
Vyn 2024-10-11 16:26:13 +02:00
parent f885d355cd
commit 36a2fe9220
62 changed files with 27689 additions and 765 deletions

View file

@ -0,0 +1,45 @@
/*
* 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 <algorithm>
#include <functional>
#include <map>
#include <memory>
#include <optional>
#include <string>
namespace mirai
{
class Mirai
{
public:
void loadSource(std::unique_ptr<BaseSource> &&resource);
void unloadAllSources();
void save();
void deleteTask(const TaskItem &taskItem);
std::optional<std::reference_wrapper<Source>> getSourceByName(const std::string &name);
std::vector<std::unique_ptr<BaseSource>> &getSources();
const std::vector<std::string> &getTags();
void reloadTags();
// Returns a non owning pointer to the requested resource or nullptr if not found.
BaseSource *getSourceById(int id);
private:
std::vector<std::unique_ptr<BaseSource>> sources_;
std::vector<std::string> tags_;
};
} // namespace mirai