X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fcliparser.h;h=aa46d1e70194fb3717c560feb2a24aeed5aae2c7;hp=0cdfcaf1a106cc9eb20b8849ef74479ba572d6f9;hb=16f22647e6890d3eb8c3e94f7a0700e12fa29e44;hpb=5c6804f291a63f978e328aeddcc8448e3443b45e diff --git a/src/common/cliparser.h b/src/common/cliparser.h index 0cdfcaf1..aa46d1e7 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-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,62 +15,38 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef CLIPARSER_H #define CLIPARSER_H -#include -#include -#include +#include -class CliParser{ -public: - inline CliParser() {}; - - bool parse(const QStringList &arguments); - 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(longName, CliParserArg(CliParserArg::CliArgSwitch, shortName, help)); - } - inline void addOption(const QString &longName, const char shortName = 0, const QString &help = QString(), const QString &def = QString()) { - addArgument(longName, CliParserArg(CliParserArg::CliArgOption, shortName, help, def)); - } - void usage(); +#include "abstractcliparser.h" -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) {}; +//! Quassel's own parser for command line arguments +class CliParser : public AbstractCliParser +{ +public: + CliParser(); - CliArgType type; - char shortName; - QString help; - QString def; - QString value; - bool boolValue; - }; + bool init(const QStringList &arguments = QStringList()); - 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); + QString value(const QString &longName); + bool isSet(const QString &longName); + void usage(); - QStringList argsRaw; - QHash argsHash; +private: + 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; + QMap argsMap; }; + #endif