/* */ #ifndef _D_OPTION_PARSER_H_ #define _D_OPTION_PARSER_H_ #include "common.h" #include #include #include #include "SharedHandle.h" namespace aria2 { class Option; class OptionHandler; class OptionParser { private: int _idCounter; std::deque > _optionHandlers; SharedHandle getOptionHandlerByName(const std::string& optName); public: OptionParser(); ~OptionParser() {} // Parses options in argv and writes option name and value to out in // NAME=VALUE format. Non-option strings are stored in nonopts. // Throws FatalException when an unrecognized option is found. void parseArg(std::ostream& out, std::deque& nonopts, int argc, char* const argv[]); void parse(Option& option, std::istream& ios); void parseDefaultValues(Option& option) const; void setOptionHandlers (const std::deque >& optionHandlers); void addOptionHandler(const SharedHandle& optionHandler); std::deque > findByTag(const std::string& tag) const; std::deque > findByNameSubstring(const std::string& substring) const; std::deque > findAll() const; SharedHandle findByName(const std::string& name) const; SharedHandle findByID(int id) const; SharedHandle findByShortName(char shortName) const; const std::deque >& getOptionHandlers() const; }; typedef SharedHandle OptionParserHandle; } // namespace aria2 #endif // _D_OPTION_PARSER_H_