/* */ #include "FileMetalinkParserState.h" #include "MetalinkParserStateMachine.h" #include "Util.h" #include "RecoverableException.h" namespace aria2 { void FileMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::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(); #ifdef ENABLE_MESSAGE_DIGEST } else if(name == "verification") { stm->setVerificationState(); #endif // ENABLE_MESSAGE_DIGEST } else if(name == "resources") { stm->setResourcesState(); int maxConnections; { std::map::const_iterator itr = attrs.find("maxconnections"); if(itr == attrs.end()) { maxConnections = -1; } else { try { maxConnections = Util::parseInt((*itr).second); } catch(RecoverableException& e) { maxConnections = -1; } } } stm->setMaxConnectionsOfEntry(maxConnections); } else { stm->setSkipTagState(this); } } void FileMetalinkParserState::endElement(MetalinkParserStateMachine* stm, const std::string& name, const std::string& characters) { stm->commitEntryTransaction(); stm->setFilesState(); } } // namespace aria2