Пример #1
0
Options::Options(int const argc, char** const argv) :
    address("127.0.0.1"),
    connect(false),
    help(false),
    port(Network::defaultPort),
    protocol(client::Protocol::tcp),
    autoReady(false),
    threaded(true),
    verbosity(utility::Verbosity::info),
    playerFile(std::string(getenv("HOME"))+"/.nibbles/players")
{
    std::string optionsFile = std::string(getenv("HOME"))+"/.nibbles/gtk-config";
    optimal::OptionsParser parser;
    parser.addOption("address",     'a', &address);
    parser.addOption("connect",     'c', &connect);
    parser.addOption("font",        'f', &fontPath);
    parser.addOption("glade",       'g', &gladePath);
    parser.addOption("help",        'h', &help);
    parser.addOption("port",        'p', &port);
    parser.addOption("protocol",    'P', &protocol);
    parser.addOption("ready",       'r', &autoReady);
    parser.addOption("sounds",      's', &soundPath);
    parser.addOption("threaded",    't', &threaded);
    parser.addOption("verbosity",   'v', &verbosity);
    parser.addOption("players",     'y', &players, ",");
    parser.addOption("player-file", 'Y', &playerFile);

    if (parser.parse(optionsFile, argc, argv)) {
        std::ostringstream message;
        message << "error(s) processing options:\n";
        copy(
            parser.getErrors().begin(), parser.getErrors().end(),
            std::ostream_iterator<std::string>(message, "\n")
        );
        throw OptionsError(message.str());
    }
}
Пример #2
0
void optionsError(const char* message) {
    throw OptionsError(message);
}