bool Resolver::solveSrcPackages() const { return _pimpl->solveSrcPackages(); }
void Resolver::addUpgradeRepo( Repository repo_r ) { _pimpl->addUpgradeRepo( repo_r ); }
+ bool Resolver::upgradingRepo( Repository repo_r ) const { return _pimpl->upgradingRepo( repo_r ); }
void Resolver::removeUpgradeRepo( Repository repo_r ) { _pimpl->removeUpgradeRepo( repo_r ); }
void Resolver::removeUpgradeRepos() { _pimpl->removeUpgradeRepos(); }
void setDefaultSolveSrcPackages();
bool solveSrcPackages() const;
+ /** \name Upgrade to content of a specific repository.
+ * \note This is an ordinary solver request. You should simply
+ * \ref resolvePool to execute, and not \ref doUpgrade.
+ */
+ //@{
/**
* Adding request to perform a dist upgrade restricted to this repository.
+ *
* This is what e.g. <tt>zypper dup --repo myrepo</tt> should perform.
* \see \ref doUpgrade
*/
void addUpgradeRepo( Repository repo_r );
/**
- * Remove the upgrade request for this repo.
+ * Whether there is an \c UpgradeRepo request pending for this repo.
+ */
+ bool upgradingRepo( Repository repo_r ) const;
+
+ /**
+ * Remove an upgrade request for this repo.
*/
void removeUpgradeRepo( Repository repo_r );
* Remove all upgrade repo requests.
*/
void removeUpgradeRepos();
+ //@}
/**
* Adding additional requirement
ResPool pool() const;
void setPool( const ResPool & pool ) { _pool = pool; }
- void addUpgradeRepo( Repository repo_r ) { if ( repo_r ) _upgradeRepos.insert( repo_r ); }
+ void addUpgradeRepo( Repository repo_r ) { if ( repo_r && ! repo_r.isSystemRepo() ) _upgradeRepos.insert( repo_r ); }
+ bool upgradingRepo( Repository repo_r ) const { return( _upgradeRepos.find( repo_r ) != _upgradeRepos.end() ); }
void removeUpgradeRepo( Repository repo_r ) { _upgradeRepos.erase( repo_r ); }
void removeUpgradeRepos() { _upgradeRepos.clear(); }
const std::set<Repository> & upgradeRepos() const { return _upgradeRepos; }