24#define ZYPP_USE_RESOLVER_INTERNALS
43 SolutionAction::SolutionAction()
46 SolutionAction::~SolutionAction()
49 std::ostream & SolutionAction::dumpOn( std::ostream & os )
const
50 {
return os <<
"SolutionAction<not specified> "; }
52 PoolItem SolutionAction::item()
const
53 {
return PoolItem(); }
55 bool SolutionAction::skipsPatchesOnly()
const
60 for (
const auto & itemptr : actionlist )
61 str << *itemptr << std::endl;
69 std::ostream & TransactionSolutionAction::dumpOn( std::ostream &
str )
const
71 str <<
"TransactionSolutionAction: ";
73 case KEEP:
str <<
"Keep " << _item;
break;
74 case INSTALL:
str <<
"Install " << _item;
break;
75 case REMOVE:
str <<
"Remove " << _item;
break;
76 case UNLOCK:
str <<
"Unlock " << _item;
break;
77 case LOCK:
str <<
"Lock " << _item;
break;
78 case REMOVE_EXTRA_REQUIRE:
str <<
"Remove require " << _capability;
break;
79 case REMOVE_EXTRA_CONFLICT:
str <<
"Remove conflict " << _capability;
break;
80 case ADD_SOLVE_QUEUE_ITEM:
str <<
"Add SolveQueueItem " << _solverQueueItem;
break;
81 case REMOVE_SOLVE_QUEUE_ITEM:
str <<
"Remove SolveQueueItem " << _solverQueueItem;
break;
95 if ( _item.status().isToBeUninstalled() )
101 if ( _item.status().isToBeInstalled() ) {
104 }
else if ( _item.status().isInstalled() )
111 if ( !ret )
ERR <<
"Cannot unlock " << _item << endl;
116 if ( !ret )
ERR <<
"Cannot lock " << _item << endl;
118 case REMOVE_EXTRA_REQUIRE:
119 resolver.removeExtraRequire( _capability );
121 case REMOVE_EXTRA_CONFLICT:
122 resolver.removeExtraConflict( _capability );
124 case ADD_SOLVE_QUEUE_ITEM:
125 resolver.addQueueItem( _solverQueueItem );
127 case REMOVE_SOLVE_QUEUE_ITEM:
128 resolver.removeQueueItem( _solverQueueItem );
131 ERR <<
"Wrong TransactionKind" << endl;
138 bool TransactionSolutionAction::skipsPatchesOnly()
const
139 {
return _action == KEEP && _item.isKind<Patch>(); }
145 std::ostream & InjectSolutionAction::dumpOn( std::ostream & str )
const
147 str <<
"InjectSolutionAction: ";
149 case WEAK: str <<
"Weak";
break;
150 default: str <<
"Wrong kind";
break;
152 return str <<
" " << _item;
161 resolver.addWeak( _item );
164 ERR <<
"No valid InjectSolutionAction kind found" << endl;
String related utilities and Regular expression matching.
std::ostream & operator<<(std::ostream &str, const SolutionActionList &actionlist)
std::list< SolutionAction_Ptr > SolutionActionList
Resolver ResolverInternal
Preferred name in API.
#define IMPL_PTR_TYPE(NAME)