summaryrefslogtreecommitdiff
path: root/src/OptionHandler.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-02-07 11:00:34 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-02-07 11:00:34 +0000
commit2881dbe025d2002fc5260969cd0c402404713ebc (patch)
tree4d30de40e909a9c9e9f3d2bdb0ad2748afc35922 /src/OptionHandler.h
parentbbb3589293139db527cf72f0a30e989fc2889a53 (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.h20
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;