diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-02-07 11:00:34 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-02-07 11:00:34 +0000 |
| commit | 2881dbe025d2002fc5260969cd0c402404713ebc (patch) | |
| tree | 4d30de40e909a9c9e9f3d2bdb0ad2748afc35922 /src/OptionHandler.h | |
| parent | bbb3589293139db527cf72f0a30e989fc2889a53 (diff) | |
2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
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
Diffstat (limited to 'src/OptionHandler.h')
| -rw-r--r-- | src/OptionHandler.h | 20 |
1 files changed, 18 insertions, 2 deletions
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 <string> #include <deque> #include <iosfwd> +#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<OptionHandler> OptionHandlerHandle; |
