X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fcliparser.h;h=123e60312ce929782e98243135a44d9a43a4192d;hp=3b0af91f5f852026d148d7342a61bfcce003d582;hb=6097f67231950c4c22845735db8b997a844fec48;hpb=3244e636b430b415aa76ba1885798d41627f7cfb diff --git a/src/common/cliparser.h b/src/common/cliparser.h index 3b0af91f..123e6031 100644 --- a/src/common/cliparser.h +++ b/src/common/cliparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,53 +21,28 @@ #ifndef CLIPARSER_H #define CLIPARSER_H -#include -#include #include -class CliParser{ +#include "abstractcliparser.h" + +//! Quassel's own parser for command line arguments +class CliParser : public AbstractCliParser { public: - inline CliParser() {}; - CliParser(QStringList arguments); + CliParser(); + + bool init(const QStringList &arguments = QStringList()); - bool parse(); QString value(const QString &longName); bool isSet(const QString &longName); - inline void addSwitch(const QString longName, const char shortName = 0, const QString help = QString()) { - addArgument(CliParserArg::CliArgSwitch, longName, shortName, help); - } - inline void addOption(const QString longName, const char shortName = 0, const QString help = QString(), const QString def = QString()) { - addArgument(CliParserArg::CliArgOption, longName, shortName, help, def); - } void usage(); private: - struct CliParserArg { - enum CliArgType { - CliArgInvalid, - CliArgSwitch, - CliArgOption - }; - CliParserArg(const CliArgType _type = CliArgInvalid, const char _shortName = 0, const QString _help = QString(), const QString _def = QString()) - : type(_type), - shortName(_shortName), - help(_help), - def(_def), - value(QString()), - boolValue(false) {}; - - CliArgType type; - char shortName; - QString help; - QString def; - QString value; - bool boolValue; - }; - - void addArgument(const CliParserArg::CliArgType type, const QString longName, const char shortName = 0, const QString help = QString(), const QString def = QString()); - bool addLongArg(const CliParserArg::CliArgType type, const QString name, const QString value = QString()); - bool addShortArg(const CliParserArg::CliArgType type, const char shortName, const QString value = QString()); + void addArgument(const QString &longName, const CliParserArg &arg); + bool addLongArg(const CliParserArg::CliArgType type, const QString &name, const QString &value = QString()); + bool addShortArg(const CliParserArg::CliArgType type, const char shortName, const QString &value = QString()); + QString escapedValue(const QString &value); QString lnameOfShortArg(const char arg); + QStringList argsRaw; QHash argsHash; };