/* */ #ifndef D_ABSTRACT_OPTION_HANDLER_H #define D_ABSTRACT_OPTION_HANDLER_H #include "OptionHandler.h" #include #include "A2STR.h" namespace aria2 { class Option; class Pref; class AbstractOptionHandler : public OptionHandler { protected: const Pref* pref_; const char* description_; std::string defaultValue_; std::vector tags_; OptionHandler::ARG_TYPE argType_; char shortName_; bool hidden_; bool eraseAfterParse_; bool initialOption_; bool changeOption_; bool changeOptionForReserved_; bool globalChangeOption_; bool cumulative_; virtual void parseArg(Option& option, const std::string& arg) = 0; public: AbstractOptionHandler(const Pref* pref, const char* description = NO_DESCRIPTION, const std::string& defaultValue = NO_DEFAULT_VALUE, ARG_TYPE argType = REQ_ARG, char shortName = 0); virtual ~AbstractOptionHandler(); virtual void parse(Option& option, const std::string& arg); virtual bool hasTag(const std::string& tag) const; virtual void addTag(const std::string& tag); virtual std::string toTagString() const; virtual const char* getName() const; virtual const char* getDescription() const { return description_; } virtual const std::string& getDefaultValue() const { return defaultValue_; } virtual bool isHidden() const { return hidden_; } virtual void hide() { hidden_ = true; } virtual const Pref* getPref() const { return pref_; } virtual char getShortName() const { return shortName_; } virtual OptionHandler::ARG_TYPE getArgType() const { return argType_; } virtual bool getEraseAfterParse() const { return eraseAfterParse_; } virtual void setEraseAfterParse(bool eraseAfterParse) { eraseAfterParse_ = eraseAfterParse; } virtual bool getInitialOption() const { return initialOption_; } virtual void setInitialOption(bool f) { initialOption_ = f; } virtual bool getChangeOption() const { return changeOption_; } virtual void setChangeOption(bool f) { changeOption_ = f; } virtual bool getChangeOptionForReserved() const { return changeOptionForReserved_; } virtual void setChangeOptionForReserved(bool f) { changeOptionForReserved_ = f; } virtual bool getChangeGlobalOption() const { return globalChangeOption_; } virtual void setChangeGlobalOption(bool f) { globalChangeOption_ = f; } virtual bool getCumulative() const { return cumulative_; } virtual void setCumulative(bool f) { cumulative_ = f; } }; } // namespace aria2 #endif // D_ABSTRACT_OPTION_HANDLER_H