24 #define ZYPP_USE_RESOLVER_INTERNALS 26 #include <zypp/solver/detail/Resolver.h> 30 #include <zypp/base/Logger.h> 49 SolutionAction::SolutionAction()
54 SolutionAction::~SolutionAction()
58 bool SolutionAction::skipsPatchesOnly()
const 66 os <<
"TransactionSolutionAction: ";
68 case KEEP: os <<
"Keep " << _item;
break;
69 case INSTALL: os <<
"Install " << _item;
break;
70 case REMOVE: os <<
"Remove " << _item;
break;
71 case UNLOCK: os <<
"Unlock " << _item;
break;
72 case LOCK: os <<
"Lock " << _item;
break;
73 case REMOVE_EXTRA_REQUIRE: os <<
"Remove require " << _capability;
break;
74 case REMOVE_EXTRA_CONFLICT: os <<
"Remove conflict " << _capability;
break;
75 case ADD_SOLVE_QUEUE_ITEM: os <<
"Add SolveQueueItem " << _solverQueueItem;
break;
76 case REMOVE_SOLVE_QUEUE_ITEM: os <<
"Remove SolveQueueItem " << _solverQueueItem;
break;
85 for (SolutionActionList::const_iterator iter = actionlist.begin(); iter != actionlist.end(); ++iter) {
97 os <<
"InjectSolutionAction: ";
99 case WEAK: os <<
"Weak";
break;
100 default: os <<
"Wrong kind";
break;
113 os <<
"SolutionAction<";
114 os <<
"not specified";
130 if (_item.status().isToBeUninstalled())
136 if (_item.status().isToBeInstalled()) {
139 }
else if (_item.status().isInstalled())
146 if (!ret)
ERR <<
"Cannot unlock " << _item << endl;
151 if (!ret)
ERR <<
"Cannot lock " << _item << endl;
153 case REMOVE_EXTRA_REQUIRE:
154 resolver.removeExtraRequire (_capability);
156 case REMOVE_EXTRA_CONFLICT:
157 resolver.removeExtraConflict (_capability);
159 case ADD_SOLVE_QUEUE_ITEM:
160 resolver.addQueueItem(_solverQueueItem);
162 case REMOVE_SOLVE_QUEUE_ITEM:
163 resolver.removeQueueItem(_solverQueueItem);
166 ERR <<
"Wrong TransactionKind" << endl;
172 bool TransactionSolutionAction::skipsPatchesOnly()
const 173 {
return _action == KEEP && _item.isKind<Patch>(); }
181 resolver.addWeak (_item);
184 ERR <<
"No valid InjectSolutionAction kind found" << endl;
std::ostream & dumpOn(std::ostream &str, const Capability &obj)
Resolver ResolverInternal
Preferred name in API.
std::ostream & operator<<(std::ostream &os, const SolutionActionList &actionlist)
IMPL_PTR_TYPE(SATResolver)
Easy-to use interface to the ZYPP dependency resolver.
std::list< SolutionAction_Ptr > SolutionActionList