From 2881dbe025d2002fc5260969cd0c402404713ebc Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 7 Feb 2009 11:00:34 +0000 Subject: 2009-02-07 Tatsuhiro Tsujikawa Added OptionParser::parseArg() which internally uses getopt_long to parse command-line options. All command-line options are now configured by OptionHandler. No manual editing of struct option* is required any more. * src/NameMatchOptionHandler.h * src/OptionHandler.h * src/OptionHandlerFactory.cc * src/OptionHandlerImpl.h * src/OptionParser.cc * src/OptionParser.h * src/array_fun.h * src/main.cc * src/option_processing.cc * test/OptionHandlerTest.cc * test/OptionParserTest.cc --- src/OptionHandler.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/OptionHandler.h') diff --git a/src/OptionHandler.h b/src/OptionHandler.h index 5a5eb952..c8306488 100644 --- a/src/OptionHandler.h +++ b/src/OptionHandler.h @@ -36,11 +36,13 @@ #define _D_OPTION_HANDLER_H_ #include "common.h" -#include "SharedHandle.h" + #include #include #include +#include "SharedHandle.h" + namespace aria2 { class Option; @@ -50,7 +52,7 @@ public: virtual ~OptionHandler() {} virtual bool canHandle(const std::string& optName) = 0; - virtual void parse(Option* option, const std::string& arg) = 0; + virtual void parse(Option& option, const std::string& arg) = 0; virtual std::string createPossibleValuesString() const = 0; @@ -67,6 +69,20 @@ public: virtual const std::string& getDefaultValue() const = 0; virtual bool isHidden() const = 0; + + enum ARG_TYPE { + REQ_ARG, + OPT_ARG, + NO_ARG + }; + + virtual ARG_TYPE getArgType() const = 0; + + virtual char getShortName() const = 0; + + virtual int getOptionID() const = 0; + + virtual void setOptionID(int id) = 0; }; typedef SharedHandle OptionHandlerHandle; -- cgit