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 26 27 28 29 30 31 32
|
#include "values.hpp"
#include <stdexcept>
namespace Settings
{
std::unique_ptr<Index> StaticValues::sIndex;
std::unique_ptr<Values> StaticValues::sDefaultValues;
std::unique_ptr<Values> StaticValues::sValues;
void StaticValues::initDefaults()
{
if (sDefaultValues != nullptr)
throw std::logic_error("Default settings are already initialized");
sIndex = std::make_unique<Index>();
sDefaultValues = std::make_unique<Values>(*sIndex);
}
void StaticValues::init()
{
if (sDefaultValues == nullptr)
throw std::logic_error("Default settings are not initialized");
sValues = std::make_unique<Values>(std::move(*sDefaultValues));
}
void StaticValues::clear()
{
sValues = nullptr;
sDefaultValues = nullptr;
sIndex = nullptr;
}
}
|