libzypp 8.13.6
|
00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #include <iostream> 00013 00014 #include "zypp/Resolver.h" 00015 #include "zypp/ZConfig.h" 00016 #include "zypp/TriBool.h" 00017 #include "zypp/solver/detail/Resolver.h" 00018 #include "zypp/solver/detail/Testcase.h" 00019 00020 using namespace std; 00021 00023 namespace zypp 00024 { 00025 00026 using namespace solver; 00027 00028 IMPL_PTR_TYPE(Resolver); 00029 00031 // 00032 // METHOD NAME : Resolver::Resolver 00033 // METHOD TYPE : Ctor 00034 // 00035 Resolver::Resolver( const ResPool & pool ) 00036 : _pimpl( new Impl(pool) ) 00037 {} 00038 00040 // 00041 // METHOD NAME : Resolver::~Resolver 00042 // METHOD TYPE : Dtor 00043 // 00044 Resolver::~Resolver() 00045 {} 00046 00048 // 00049 // Resolver interface forwarded to implementation 00050 // 00052 bool Resolver::verifySystem () 00053 { return _pimpl->verifySystem(); } 00054 00055 bool Resolver::resolvePool () 00056 { return _pimpl->resolvePool(); } 00057 00058 bool Resolver::resolveQueue( solver::detail::SolverQueueItemList & queue ) 00059 { return _pimpl->resolveQueue(queue); } 00060 00061 void Resolver::undo() 00062 { _pimpl->undo(); } 00063 00064 ResolverProblemList Resolver::problems () 00065 { return _pimpl->problems (); } 00066 00067 void Resolver::applySolutions( const ProblemSolutionList & solutions ) 00068 { _pimpl->applySolutions (solutions); } 00069 00070 bool Resolver::doUpgrade() 00071 { return _pimpl->doUpgrade(); } 00072 00073 void Resolver::doUpdate() 00074 { _pimpl->doUpdate(); } 00075 00076 void Resolver::setForceResolve( bool yesno_r ) { _pimpl->setForceResolve( yesno_r ); } 00077 bool Resolver::forceResolve() const { return _pimpl->forceResolve(); } 00078 00079 void Resolver::setIgnoreAlreadyRecommended( bool yesno_r) { _pimpl->setIgnoreAlreadyRecommended( yesno_r ); } 00080 bool Resolver::ignoreAlreadyRecommended() const { return _pimpl->ignoreAlreadyRecommended(); } 00081 00082 void Resolver::setOnlyRequires( bool yesno_r ) { _pimpl->setOnlyRequires( yesno_r ); } 00083 void Resolver::resetOnlyRequires() { _pimpl->setOnlyRequires( indeterminate ); } 00084 bool Resolver::onlyRequires() const { return _pimpl->onlyRequires(); } 00085 00086 void Resolver::setUpgradeMode( bool yesno_r ) { return _pimpl->setUpgradeMode( yesno_r ); } 00087 bool Resolver::upgradeMode() const { return _pimpl->isUpgradeMode(); } 00088 00089 void Resolver::setAllowVendorChange( bool yesno_r ) { _pimpl->setAllowVendorChange( yesno_r ); } 00090 void Resolver::setDefaultAllowVendorChange() { _pimpl->setAllowVendorChange( indeterminate ); } 00091 bool Resolver::allowVendorChange() const { return _pimpl->allowVendorChange(); } 00092 00093 void Resolver::setSystemVerification( bool yesno_r ) { _pimpl->setVerifyingMode( yesno_r ); } 00094 void Resolver::setDefaultSystemVerification() { _pimpl->setVerifyingMode( indeterminate ); } 00095 bool Resolver::systemVerification() const { return _pimpl->isVerifyingMode(); } 00096 00097 void Resolver::setSolveSrcPackages( bool yesno_r ) { _pimpl->setSolveSrcPackages( yesno_r ); } 00098 void Resolver::setDefaultSolveSrcPackages() { _pimpl->setSolveSrcPackages( indeterminate ); } 00099 bool Resolver::solveSrcPackages() const { return _pimpl->solveSrcPackages(); } 00100 00101 void Resolver::setCleandepsOnRemove( bool yesno_r ) { _pimpl->setCleandepsOnRemove( yesno_r ); } 00102 void Resolver::setDefaultCleandepsOnRemove() { _pimpl->setCleandepsOnRemove( indeterminate ); } 00103 bool Resolver::cleandepsOnRemove() const { return _pimpl->cleandepsOnRemove(); } 00104 00105 void Resolver::addUpgradeRepo( Repository repo_r ) { _pimpl->addUpgradeRepo( repo_r ); } 00106 bool Resolver::upgradingRepo( Repository repo_r ) const { return _pimpl->upgradingRepo( repo_r ); } 00107 void Resolver::removeUpgradeRepo( Repository repo_r ) { _pimpl->removeUpgradeRepo( repo_r ); } 00108 void Resolver::removeUpgradeRepos() { _pimpl->removeUpgradeRepos(); } 00109 00110 void Resolver::addRequire( const Capability & capability ) { _pimpl->addExtraRequire( capability ); } 00111 void Resolver::addConflict( const Capability & capability ) { _pimpl->addExtraConflict( capability ); } 00112 void Resolver::removeRequire( const Capability & capability ) { _pimpl->removeExtraRequire( capability ); } 00113 void Resolver::removeConflict( const Capability & capability ){ _pimpl->removeExtraConflict( capability ); } 00114 00115 CapabilitySet Resolver::getRequire() const { return _pimpl->extraRequires(); } 00116 CapabilitySet Resolver::getConflict() const { return _pimpl->extraConflicts(); } 00117 00118 std::list<PoolItem> Resolver::problematicUpdateItems() const 00119 { return _pimpl->problematicUpdateItems(); } 00120 00121 bool Resolver::createSolverTestcase( const std::string & dumpPath, bool runSolver ) 00122 { 00123 solver::detail::Testcase testcase (dumpPath); 00124 return testcase.createTestcase(*_pimpl, true, runSolver); 00125 } 00126 00127 solver::detail::ItemCapKindList Resolver::isInstalledBy( const PoolItem & item ) 00128 { return _pimpl->isInstalledBy (item); } 00129 00130 solver::detail::ItemCapKindList Resolver::installs( const PoolItem & item ) 00131 { return _pimpl->installs (item); } 00132 00133 solver::detail::ItemCapKindList Resolver::satifiedByInstalled( const PoolItem & item ) 00134 { return _pimpl->satifiedByInstalled (item); } 00135 00136 solver::detail::ItemCapKindList Resolver::installedSatisfied( const PoolItem & item ) 00137 { return _pimpl->installedSatisfied (item); } 00138 00139 void Resolver::reset() 00140 { _pimpl->reset( false ); /* Do not keep extra requires/conflicts */ } 00141 00142 std::ostream & operator<<( std::ostream & str, const Resolver & obj ) 00143 { return str << *obj._pimpl; } 00144 00146 } // namespace zypp