![](https://seccdn.libravatar.org/avatar/d5900b51dba6d927d3feaf3b73360d4f.jpg?s=120&d=mm&r=g)
Author: dmacvicar Date: Wed Jul 4 17:15:02 2007 New Revision: 5884 URL: http://svn.opensuse.org/viewcvs/zypp?rev=5884&view=rev Log: - make repoProvidePackage in TargetImpl a functor class so it takes a ResPool in constructor. Using the ResPool we can get the Repo List and therefore the Delta candidates. Modified: branches/REFACTORING-10_3/libzypp/zypp/repo/DeltaCandidates.h branches/REFACTORING-10_3/libzypp/zypp/target/TargetImpl.cc Modified: branches/REFACTORING-10_3/libzypp/zypp/repo/DeltaCandidates.h URL: http://svn.opensuse.org/viewcvs/zypp/branches/REFACTORING-10_3/libzypp/zypp/repo/DeltaCandidates.h?rev=5884&r1=5883&r2=5884&view=diff ============================================================================== --- branches/REFACTORING-10_3/libzypp/zypp/repo/DeltaCandidates.h (original) +++ branches/REFACTORING-10_3/libzypp/zypp/repo/DeltaCandidates.h Wed Jul 4 17:15:02 2007 @@ -28,6 +28,10 @@ /** * \short Candidate delta and patches for a package + * + * Basically a container that given N repositories, + * gets all patches and deltas from them for a given + * package. */ class DeltaCandidates { Modified: branches/REFACTORING-10_3/libzypp/zypp/target/TargetImpl.cc URL: http://svn.opensuse.org/viewcvs/zypp/branches/REFACTORING-10_3/libzypp/zypp/target/TargetImpl.cc?rev=5884&r1=5883&r2=5884&view=diff ============================================================================== --- branches/REFACTORING-10_3/libzypp/zypp/target/TargetImpl.cc (original) +++ branches/REFACTORING-10_3/libzypp/zypp/target/TargetImpl.cc Wed Jul 4 17:15:02 2007 @@ -221,24 +221,45 @@ } }; - /** Let the Source provide the package. + /** + * \short Let the Source provide the package. + * \p pool_r \ref ResPool used to get candidates + * \p pi item to be commited */ - static ManagedFile repoProvidePackage( const PoolItem & pi ) + struct RepoProvidePackage { - // Redirect PackageProvider queries for installed editions - // (in case of patch/delta rpm processing) to rpmDb. - repo::PackageProviderPolicy packageProviderPolicy; - packageProviderPolicy.queryInstalledCB( QueryInstalledEditionHelper() ); - - Package::constPtr p = asKind<Package>(pi.resolvable()); + ResPool _pool; + RepoProvidePackage( ResPool pool_r ) + : _pool(pool_r) + { - // FIXME no repo list - std::list<Repository> repos; - repo::DeltaCandidates deltas(repos); - repo::PackageProvider pkgProvider( p, deltas, packageProviderPolicy ); - return pkgProvider.providePackage(); - } - + } + + ManagedFile operator()( const PoolItem & pi ) + { + // Redirect PackageProvider queries for installed editions + // (in case of patch/delta rpm processing) to rpmDb. + repo::PackageProviderPolicy packageProviderPolicy; + packageProviderPolicy.queryInstalledCB( QueryInstalledEditionHelper() ); + + Package::constPtr p = asKind<Package>(pi.resolvable()); + + + // Build a repository list for repos + // contributing to the pool + std::list<Repository> repos; + for ( ResPool::repository_iterator it = _pool.knownRepositoriesBegin(); + it != _pool.knownRepositoriesEnd(); + ++it ) + { + repos.push_back(*it); + } + + repo::DeltaCandidates deltas(repos); + repo::PackageProvider pkgProvider( p, deltas, packageProviderPolicy ); + return pkgProvider.providePackage(); + } + }; /////////////////////////////////////////////////////////////////// IMPL_PTR_TYPE(TargetImpl); @@ -474,6 +495,7 @@ // remember the last used source (if any) Repository lastUsedRepo; + RepoProvidePackage repoProvidePackage(pool_r); // prepare the package cache. CommitPackageCache packageCache( items_r.begin(), items_r.end(), root() / "tmp", repoProvidePackage ); -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org