RepoProvidePackage::~RepoProvidePackage()
{}
- ManagedFile RepoProvidePackage::operator()( const PoolItem & pi, bool fromCache_r )
+ ManagedFile RepoProvidePackage::operator()( const PoolItem & pi_r, bool fromCache_r )
{
- Package::constPtr p = asKind<Package>(pi.resolvable());
+ ManagedFile ret;
if ( fromCache_r )
{
- repo::PackageProvider pkgProvider( _impl->_access, p, repo::DeltaCandidates(), _impl->_packageProviderPolicy );
- return pkgProvider.providePackageFromCache();
+ repo::PackageProvider pkgProvider( _impl->_access, pi_r, _impl->_packageProviderPolicy );
+ ret = pkgProvider.providePackageFromCache();
}
- else
+ else if ( pi_r.isKind<Package>() ) // may make use of deltas
+ {
+ repo::DeltaCandidates deltas( _impl->_repos, pi_r.name() );
+ repo::PackageProvider pkgProvider( _impl->_access, pi_r, deltas, _impl->_packageProviderPolicy );
+ return pkgProvider.providePackage();
+ }
+ else // SrcPackage or throws
{
- repo::DeltaCandidates deltas( _impl->_repos, p->name() );
- repo::PackageProvider pkgProvider( _impl->_access, p, deltas, _impl->_packageProviderPolicy );
+ repo::PackageProvider pkgProvider( _impl->_access, pi_r, _impl->_packageProviderPolicy );
return pkgProvider.providePackage();
}
+ return ret;
}
///////////////////////////////////////////////////////////////////
assert( _pimpl );
}
- CommitPackageCache::CommitPackageCache( const Pathname & rootDir_r,
- const PackageProvider & packageProvider_r )
+ CommitPackageCache::CommitPackageCache( const PackageProvider & packageProvider_r )
{
if ( getenv("ZYPP_COMMIT_NO_PACKAGE_CACHE") )
{
}
else
{
- _pimpl.reset( new CommitPackageCacheReadAhead( rootDir_r, packageProvider_r ) );
+ _pimpl.reset( new CommitPackageCacheReadAhead( packageProvider_r ) );
}
assert( _pimpl );
}
- CommitPackageCache::~CommitPackageCache()
+ CommitPackageCache::CommitPackageCache( const Pathname & /*rootDir_r*/,
+ const PackageProvider & packageProvider_r )
+ : CommitPackageCache( packageProvider_r )
+ {}
+
+ CommitPackageCache::~CommitPackageCache()
{}
void CommitPackageCache::setCommitList( std::vector<sat::Solvable> commitList_r )