/* */ #include "FileMetalinkParserState.h" #include "MetalinkParserStateMachine.h" #include "Util.h" #include "RecoverableException.h" void FileMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const string& name, const map& attrs) { if(name == "size") { stm->setSizeState(); } else if(name == "version") { stm->setVersionState(); } else if(name == "language") { stm->setLanguageState(); } else if(name == "os") { stm->setOSState(); } else if(name == "verification") { stm->setVerificationState(); } else if(name == "resources") { stm->setResourcesState(); int32_t maxConnections; { map::const_iterator itr = attrs.find("maxconnections"); if(itr == attrs.end()) { maxConnections = -1; } else { try { maxConnections = Util::parseInt((*itr).second); } catch(RecoverableException* e) { delete e; maxConnections = -1; } } } stm->setMaxConnectionsOfEntry(maxConnections); } else { stm->setSkipTagState(this); } } void FileMetalinkParserState::endElement(MetalinkParserStateMachine* stm, const string& name, const string& characters) { stm->commitEntryTransaction(); stm->setFilesState(); }