summaryrefslogtreecommitdiff
path: root/hyprpm/src/core/DataState.hpp
blob: d9872b907d752aa4b44e988bf3a15728b0f5e53f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once
#include <filesystem>
#include <string>
#include <vector>
#include "Plugin.hpp"

struct SGlobalState {
    std::string headersAbiCompiled = "";
    bool        dontWarnInstall    = false;
};

namespace DataState {
    std::filesystem::path              getDataStatePath();
    std::string                        getHeadersPath();
    std::vector<std::filesystem::path> getPluginStates();
    void                               ensureStateStoreExists();
    void                               addNewPluginRepo(const SPluginRepository& repo);
    void                               removePluginRepo(const SPluginRepoIdentifier identifier);
    bool                               pluginRepoExists(const SPluginRepoIdentifier identifier);
    void                               updateGlobalState(const SGlobalState& state);
    void                               purgeAllCache();
    SGlobalState                       getGlobalState();
    bool                               setPluginEnabled(const SPluginRepoIdentifier identifier, bool enabled);
    std::vector<SPluginRepository>     getAllRepositories();
};