22 #ifndef ZYPP_SOLVER_DETAIL_RESOLVER_H 23 #define ZYPP_SOLVER_DETAIL_RESOLVER_H 24 #ifndef ZYPP_USE_RESOLVER_INTERNALS 25 #error Do not directly include this file! 33 #include <zypp/solver/Types.h> 50 typedef std::list<PoolItem> PoolItemList;
51 typedef std::set<PoolItem> PoolItemSet;
65 typedef std::multimap<PoolItem,ItemCapKind> ItemCapKindMap;
68 SATResolver *_satResolver;
73 std::set<Repository> _upgradeRepos;
76 PoolItemList _addWeak;
86 bool _solveSrcPackages;
87 bool _cleandepsOnRemove;
89 bool _ignoreAlreadyRecommended;
98 ItemCapKindMap _isInstalledBy;
99 ItemCapKindMap _installs;
100 ItemCapKindMap _satifiedByInstalled;
101 ItemCapKindMap _installedSatisfied;
104 void collectResolverInfo();
109 bool checkUnmaintainedItems ();
120 std::ostream &
dumpOn( std::ostream &
str )
const;
128 void setPool(
const ResPool & pool ) { _pool = pool; }
130 void addUpgradeRepo(
Repository repo_r ) {
if ( repo_r && ! repo_r.
isSystemRepo() ) _upgradeRepos.insert( repo_r ); }
131 bool upgradingRepo(
Repository repo_r )
const {
return( _upgradeRepos.find( repo_r ) != _upgradeRepos.end() ); }
132 void removeUpgradeRepo(
Repository repo_r ) { _upgradeRepos.erase( repo_r ); }
133 void removeUpgradeRepos() { _upgradeRepos.clear(); }
134 const std::set<Repository> & upgradeRepos()
const {
return _upgradeRepos; }
136 void addExtraRequire(
const Capability & capability );
137 void removeExtraRequire(
const Capability & capability );
138 void addExtraConflict(
const Capability & capability );
139 void removeExtraConflict(
const Capability & capability );
141 void removeQueueItem( SolverQueueItem_Ptr item );
142 void addQueueItem( SolverQueueItem_Ptr item );
144 CapabilitySet extraRequires()
const {
return _extra_requires; }
145 CapabilitySet extraConflicts()
const {
return _extra_conflicts; }
147 void addWeak(
const PoolItem & item );
155 PoolItemList problematicUpdateItems()
const;
159 bool ignoreAlreadyRecommended()
const {
return _ignoreAlreadyRecommended; }
160 void setIgnoreAlreadyRecommended(
bool yesno_r ) { _ignoreAlreadyRecommended = yesno_r; }
162 bool onlyRequires ()
const {
return _onlyRequires; }
163 void setOnlyRequires(
TriBool state_r );
165 bool isUpgradeMode()
const {
return _upgradeMode; }
166 void setUpgradeMode(
bool yesno_r ) { _upgradeMode = yesno_r; }
168 bool isUpdateMode()
const {
return _updateMode; }
169 void setUpdateMode(
bool yesno_r ) { _updateMode = yesno_r; }
171 bool isVerifyingMode()
const {
return _verifying; }
172 void setVerifyingMode(
TriBool state_r ) { _verifying = indeterminate(state_r) ? false :
bool(state_r); }
174 bool solveSrcPackages()
const {
return _solveSrcPackages; }
175 void setSolveSrcPackages(
TriBool state_r ) { _solveSrcPackages = indeterminate(state_r) ? false :
bool(state_r); }
177 bool cleandepsOnRemove()
const {
return _cleandepsOnRemove; }
178 void setCleandepsOnRemove(
TriBool state_r );
184 #define ZOLV_FLAG_TRIBOOL( ZSETTER, ZGETTER ) \ 185 void ZSETTER( TriBool state_r ); \ 186 bool ZGETTER() const; \ 200 #undef ZOLV_FLAG_TRIBOOL 213 void reset(
bool keepExtras =
false );
237 #endif // ZYPP_USE_RESOLVER_INTERNALS 238 #endif // ZYPP_SOLVER_DETAIL_RESOLVER_H std::list< ProblemSolution_Ptr > ProblemSolutionList
Simple serial number watcher.
bool isSystemRepo() const
Return whether this is the system repository.
virtual std::ostream & dumpOn(std::ostream &str) const
Overload to realize std::ostream & operator<<.
ResolverFocus
The resolvers general attitude.
String related utilities and Regular expression matching.
Libsolv transaction wrapper.
std::list< SolverQueueItem_Ptr > SolverQueueItemList
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
std::list< ResolverProblem_Ptr > ResolverProblemList
Dependency resolver interface.
std::ostream & dumpOn(std::ostream &str, const Capability &obj)
std::unordered_set< Capability > CapabilitySet
::s_Solver CSolver
Wrapped libsolv C data type exposed as backdoor.
std::list< ItemCapKind > ItemCapKindList
ZOLV_FLAG_TRIBOOL(setAllowNameChange, allowNameChange, _allownamechange, true) ZOLV_FLAG_TRIBOOL(setAllowVendorChange
std::ostream & operator<<(std::ostream &os, const SolutionActionList &actionlist)
Combining sat::Solvable and ResStatus.
Easy-to use interface to the ZYPP dependency resolver.
Class representing one possible solution to a problem found during resolving.