/* */ #ifndef _D_OPTION_HANDLER_H_ #define _D_OPTION_HANDLER_H_ #include "common.h" #include "SharedHandle.h" #include #include #include namespace aria2 { class Option; class OptionHandler { public: virtual ~OptionHandler() {} virtual bool canHandle(const std::string& optName) = 0; virtual void parse(Option* option, const std::string& arg) = 0; virtual std::string createPossibleValuesString() const = 0; virtual bool hasTag(const std::string& tag) const = 0; virtual void addTag(const std::string& tag) = 0; virtual std::string toTagString() const = 0; virtual const std::string& getName() const = 0; virtual const std::string& getDescription() const = 0; virtual const std::string& getDefaultValue() const = 0; virtual bool isHidden() const = 0; }; typedef SharedHandle OptionHandlerHandle; typedef std::deque OptionHandlers; std::ostream& operator<<(std::ostream& o, const OptionHandler& optionHandler); } // namespace aria2 #endif // _D_OPTION_HANDLER_H_