/* */ #ifndef D_OPTION_HANDLER_H #define D_OPTION_HANDLER_H #include "common.h" #include #include #include #include #include "SharedHandle.h" #include "console.h" namespace aria2 { extern const char NO_DESCRIPTION[]; extern const std::string NO_DEFAULT_VALUE; extern const std::string PATH_TO_FILE; extern const std::string PATH_TO_FILE_STDIN; extern const std::string PATH_TO_FILE_STDOUT; extern const std::string PATH_TO_DIR; extern const std::string PATH_TO_COMMAND; class Option; struct Pref; class OptionHandler { public: virtual ~OptionHandler() {} virtual void parse(Option& option, const std::string& arg) = 0; virtual std::string createPossibleValuesString() const = 0; virtual bool hasTag(uint32_t tag) const = 0; virtual void addTag(uint32_t tag) = 0; virtual std::string toTagString() const = 0; virtual const char* getName() const = 0; virtual const char* getDescription() const = 0; virtual const std::string& getDefaultValue() const = 0; virtual bool isHidden() const = 0; virtual void hide() = 0; virtual const Pref* getPref() const = 0; enum ARG_TYPE { REQ_ARG, OPT_ARG, NO_ARG }; virtual ARG_TYPE getArgType() const = 0; virtual char getShortName() const = 0; // Returns true if option value should be erased from argv to // prevent it from appearing in the output of ps. virtual bool getEraseAfterParse() const = 0; virtual void setEraseAfterParse(bool eraseAfterParse) = 0; virtual bool getInitialOption() const = 0; virtual void setInitialOption(bool f) = 0; virtual bool getChangeOption() const = 0; virtual void setChangeOption(bool f) = 0; virtual bool getChangeOptionForReserved() const = 0; virtual void setChangeOptionForReserved(bool f) = 0; virtual bool getChangeGlobalOption() const = 0; virtual void setChangeGlobalOption(bool f) = 0; virtual bool getCumulative() const = 0; virtual void setCumulative(bool f) = 0; }; std::ostream& operator<<(std::ostream& o, const OptionHandler& optionHandler); void write(const Console& out, const OptionHandler& optionHandler); } // namespace aria2 #endif // D_OPTION_HANDLER_H