/* */ #include "UriListParser.h" #include #include #include "util.h" #include "Option.h" #include "OptionHandlerFactory.h" #include "OptionHandler.h" namespace aria2 { UriListParser::UriListParser(std::istream& in):_in(in) { _optparser.setOptionHandlers(OptionHandlerFactory::createOptionHandlers()); } UriListParser::~UriListParser() {} void UriListParser::getOptions(Option& op) { std::stringstream ss; while(getline(_in, _line)) { if(util::startsWith(_line, " ")) { ss << _line << "\n"; } else { break; } } _optparser.parse(op, ss); } void UriListParser::parseNext(std::vector& uris, Option& op) { if(_line.empty()) { getline(_in, _line); } if(!_in) { return; } do { if(!util::trim(_line).empty()) { util::split(_line, std::back_inserter(uris), "\t", true); getOptions(op); return; } } while(getline(_in, _line)); } bool UriListParser::hasNext() const { return _in; } } // namespace aria2