OptionMeta* OptionManager::GetOption(const std::string& name) { if (!OptionExists(name)) { return nullptr; } return _options[name]; }
void OptionsDB::Validate(const std::string& name, const std::string& value) const { std::map<std::string, Option>::const_iterator it = m_options.find(name); if (!OptionExists(it)) throw std::runtime_error("Attempted to validate unknown option \"" + name + "\"."); if (it->second.validator) it->second.validator->Validate(value); else if (it->second.flag) boost::lexical_cast<bool>(value); }
bool OptionManager::AddOption(OptionMeta* option) { // std::string fullname; if (!option) { return false; } //fullname = OptionSectionToString(option->GetSection()) + "." + option->GetName(); if (OptionExists(option->GetName())) { return false; } _options[option->GetName()] = option; _sections[(int)option->GetSection()].push_back(option); return true; }
std::shared_ptr<const ValidatorBase> OptionsDB::GetValidator(const std::string& option_name) const { std::map<std::string, Option>::const_iterator it = m_options.find(option_name); if (!OptionExists(it)) throw std::runtime_error(("OptionsDB::GetValidator(): No option called \"" + option_name + "\" could be found.").c_str()); return it->second.validator; }
const std::string& OptionsDB::GetDescription(const std::string& option_name) const { std::map<std::string, Option>::const_iterator it = m_options.find(option_name); if (!OptionExists(it)) throw std::runtime_error(("OptionsDB::GetDescription(): No option called \"" + option_name + "\" could be found.").c_str()); return it->second.description; }