mirai/external/mirai-core-old/include/mirai-core/Mirai.h
2024-10-15 09:04:31 +02:00

45 lines
1.1 KiB
C++

/*
* 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