51 lines
1.0 KiB
C++
51 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#define JSON_INLINE_ALL
|
|
#include <nlohmann/json.hpp>
|
|
|
|
namespace dropshell {
|
|
|
|
class tRegistryEntry {
|
|
|
|
public:
|
|
tRegistryEntry(nlohmann::json json);
|
|
~tRegistryEntry();
|
|
|
|
public:
|
|
std::string name;
|
|
std::string url;
|
|
std::string token;
|
|
bool valid;
|
|
};
|
|
|
|
class config {
|
|
public:
|
|
config();
|
|
~config();
|
|
|
|
bool load_config();
|
|
bool save_config(bool create_aux_directories);
|
|
|
|
bool is_config_set() const;
|
|
static bool is_agent_installed();
|
|
|
|
std::vector<tRegistryEntry> get_template_registry_urls();
|
|
std::vector<std::string> get_local_template_paths();
|
|
std::vector<std::string> get_local_server_definition_paths();
|
|
|
|
std::string get_server_create_path();
|
|
std::string get_template_create_path();
|
|
std::string get_backups_path();
|
|
|
|
private:
|
|
nlohmann::json mConfig;
|
|
bool mIsConfigSet;
|
|
};
|
|
|
|
|
|
config & gConfig();
|
|
|
|
} // namespace dropshell
|