/* */ #include "OptionParser.h" #include "Util.h" #include "OptionHandlerImpl.h" void OptionParser::parse(Option* option, istream& is) { string line; int32_t linenum = 0; while(getline(is, line)) { ++linenum; if(Util::startsWith(line, "#")) { continue; } pair nv = Util::split(line, "="); OptionHandlerHandle handler = getOptionHandlerByName(nv.first); handler->parseArg(option, nv.second); } } OptionHandlerHandle OptionParser::getOptionHandlerByName(const string& optName) { for(OptionHandlers::iterator itr = _optionHandlers.begin(); itr != _optionHandlers.end(); ++itr) { if((*itr)->canHandle(optName)) { return *itr; } } return new NullOptionHandler(); }