rcpp_fw_static/core/settings.cpp

47 lines
820 B
C++

#include "settings.h"
#include <stdio.h>
#include <stdlib.h>
void Settings::parse_file(const std::string &path) {
FILE *f = fopen(path.c_str(), "r");
if (!f) {
printf("Settings::parse_file: Error opening file!\n");
return;
}
fseek(f, 0, SEEK_END);
long fsize = ftell(f);
fseek(f, 0, SEEK_SET); /* same as rewind(f); */
std::string config_str;
config_str.resize(fsize);
fread(&config_str[0], 1, fsize, f);
fclose(f);
settings.Parse(config_str.c_str());
}
Settings *Settings::get_singleton() {
return _singleton;
}
Settings::Settings(const bool singleton) {
if (singleton) {
if (_singleton) {
printf("Settings singleton overridden!\n");
}
_singleton = this;
}
}
Settings::~Settings() {
if (_singleton == this) {
_singleton = nullptr;
}
}
Settings *Settings::_singleton = nullptr;