/* */ #include "AbstractOptionHandler.h" #include #include "OptionHandlerException.h" #include "a2functional.h" #include "Option.h" #include "prefs.h" namespace aria2 { AbstractOptionHandler::AbstractOptionHandler (const Pref* pref, const char* description, const std::string& defaultValue, ARG_TYPE argType, char shortName) : pref_(pref), description_(description), defaultValue_(defaultValue), argType_(argType), shortName_(shortName), hidden_(false), eraseAfterParse_(false), initialOption_(false), changeOption_(false), changeOptionForReserved_(false), globalChangeOption_(false), cumulative_(false) {} AbstractOptionHandler::~AbstractOptionHandler() {} void AbstractOptionHandler::parse(Option& option, const std::string& arg) { try { parseArg(option, arg); } catch(Exception& e) { throw OPTION_HANDLER_EXCEPTION2(pref_, e); } } bool AbstractOptionHandler::hasTag(const std::string& tag) const { return std::find(tags_.begin(), tags_.end(), tag) != tags_.end(); } void AbstractOptionHandler::addTag(const std::string& tag) { tags_.push_back(tag); } std::string AbstractOptionHandler::toTagString() const { return strjoin(tags_.begin(), tags_.end(), ", "); } const char* AbstractOptionHandler::getName() const { return pref_->k; } } // namespace aria2