示例#1
0
OptionMeta* OptionManager::GetOption(const std::string& name)
{
    if (!OptionExists(name))
        {
            return nullptr;
        }

    return _options[name];
}
示例#2
0
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);
}
示例#3
0
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;
}
示例#4
0
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;
}
示例#5
0
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;
}