X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=zypp%2Fparser%2Fyum%2FRepomdFileReader.cc;h=6163a78b0b91eddba3be9e617ceba3beaa57fac2;hb=f2f36ebec8b34e01f91f190cbd0b9f4d3c2c4510;hp=99908b00366bfd17ad349c58b6a57ab87da369f3;hpb=d492bc6ff98c3a2917afcaad406ef9586a9ba8f5;p=platform%2Fupstream%2Flibzypp.git diff --git a/zypp/parser/yum/RepomdFileReader.cc b/zypp/parser/yum/RepomdFileReader.cc index 99908b0..6163a78 100644 --- a/zypp/parser/yum/RepomdFileReader.cc +++ b/zypp/parser/yum/RepomdFileReader.cc @@ -60,20 +60,12 @@ namespace zypp }; public: - /** Ctro taking a ProcessResource2 callback */ - Impl(const Pathname &repomd_file, const ProcessResource2 & callback ) - : _tag( tag_NONE ) - , _type( ResourceType::NONE_e ) - , _callback( callback ) - { - Reader reader( repomd_file ); - MIL << "Reading " << repomd_file << endl; - reader.foreachNode( bind( &RepomdFileReader::Impl::consumeNode, this, _1 ) ); - } - /** \overload Redirect an old ProcessResource callback */ - Impl(const Pathname &repomd_file, const ProcessResource & callback) - : Impl( repomd_file, ProcessResource2( bind( callback, _1, _2 ) ) ) - {} + /** + * CTOR + * + * \see RepomdFileReader::RepomdFileReader(Pathname,ProcessResource) + */ + Impl(const Pathname &repomd_file, const ProcessResource & callback); /** * Callback provided to the XML parser. @@ -82,23 +74,41 @@ namespace zypp private: - /** Function for processing collected data. Passed-in through constructor. */ - ProcessResource2 _callback; + /** Location of metadata file. */ + OnMediaLocation _location; /** Used to remember currently processed tag */ Tag _tag; - /** Type of metadata file (string) */ - std::string _typeStr; - - /** Type of metadata file as enum of well known repoinded.xml entries. */ + /** Type of metadata file. */ repo::yum::ResourceType _type; - /** Location of metadata file. */ - OnMediaLocation _location; + /** Function for processing collected data. Passed-in through constructor. */ + ProcessResource _callback; + + /** Checksum of metadata file */ + CheckSum _checksum; + + /** Type of checksum of metadata file */ + std::string _checksum_type; + + /** Metadata file time-stamp. */ + Date _timestamp; }; /////////////////////////////////////////////////////////////////////// + RepomdFileReader::Impl::Impl( + const Pathname &repomd_file, const ProcessResource & callback) + : + _tag(tag_NONE), _type(ResourceType::NONE_e), _callback(callback) + { + Reader reader( repomd_file ); + MIL << "Reading " << repomd_file << endl; + reader.foreachNode( bind( &RepomdFileReader::Impl::consumeNode, this, _1 ) ); + } + + // -------------------------------------------------------------------------- + /* * xpath and multiplicity of processed nodes are included in the code * for convenience: @@ -125,8 +135,7 @@ namespace zypp if ( reader_r->name() == "data" ) { _tag = tag_Data; - _typeStr = reader_r->getAttribute("type").asString(); - _type = ResourceType(_typeStr); + _type = ResourceType(reader_r->getAttribute("type").asString()); return true; } @@ -165,7 +174,7 @@ namespace zypp if ( reader_r->name() == "data" ) { if (_callback) - _callback( _location, _type, _typeStr ); + _callback( _location, _type ); return true; } @@ -181,12 +190,10 @@ namespace zypp // /////////////////////////////////////////////////////////////////// - RepomdFileReader::RepomdFileReader( const Pathname & repomd_file, const ProcessResource & callback ) - : _pimpl( new Impl(repomd_file, callback) ) - {} - - RepomdFileReader::RepomdFileReader( const Pathname & repomd_file, const ProcessResource2 & callback ) - : _pimpl( new Impl(repomd_file, callback) ) + RepomdFileReader::RepomdFileReader( + const Pathname & repomd_file, const ProcessResource & callback) + : + _pimpl(new Impl(repomd_file, callback)) {} RepomdFileReader::~RepomdFileReader()