24 #undef ZYPP_BASE_LOGGER_LOGGROUP
25 #define ZYPP_BASE_LOGGER_LOGGROUP "parser::yum"
28 using namespace zypp::xml;
69 Reader reader( repomd_file );
70 MIL <<
"Reading " << repomd_file << endl;
71 reader.foreachNode( bind( &RepomdFileReader::Impl::consumeNode,
this, _1 ) );
81 bool consumeNode( Reader & reader_r );
113 bool RepomdFileReader::Impl::consumeNode( Reader & reader_r )
115 if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT )
118 if ( reader_r->name() ==
"repomd" )
125 if ( reader_r->name() ==
"data" )
128 _typeStr = reader_r->getAttribute(
"type").asString();
134 if ( reader_r->name() ==
"location" )
137 _location.setLocation( reader_r->getAttribute(
"href").asString(), 1 );
143 if ( reader_r->name() ==
"checksum" )
146 string checksum_type = reader_r->getAttribute(
"type").asString() ;
147 string checksum_vaue = reader_r.nodeText().asString();
148 _location.setChecksum(
CheckSum( checksum_type, checksum_vaue ) );
153 if ( reader_r->name() ==
"timestamp" )
160 if ( reader_r->name() ==
"size" )
162 string size_value = reader_r.nodeText().asString();
164 _location.setDownloadSize( size );
171 else if ( reader_r->nodeType() == XML_READER_TYPE_END_ELEMENT )
174 if ( reader_r->name() ==
"data" )
193 RepomdFileReader::RepomdFileReader(
const Pathname & repomd_file,
const ProcessResource & callback )
194 : _pimpl( new
Impl(repomd_file, callback) )
198 : _pimpl( new
Impl(repomd_file, callback) )