9 #ifndef ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H 10 #define ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H 11 #ifndef ZYPP_USE_RESOLVER_INTERNALS 12 #error Do not directly include this file! 18 #include <zypp/base/ReferenceCounted.h> 19 #include <zypp/base/PtrTypes.h> 43 class SolutionAction :
public base::ReferenceCounted
49 virtual ~SolutionAction();
52 virtual std::ostream &
dumpOn( std::ostream &
str )
const;
53 friend std::ostream&
operator<<(std::ostream &
str,
const SolutionAction & action)
54 {
return action.dumpOn (
str); }
66 virtual bool skipsPatchesOnly()
const;
83 REMOVE_EXTRA_CONFLICT,
85 REMOVE_SOLVE_QUEUE_ITEM,
89 class TransactionSolutionAction:
public SolutionAction
92 TransactionSolutionAction( PoolItem item,
93 TransactionKind action )
95 _item( item ), _action( action ) {}
97 TransactionSolutionAction( Capability capability,
98 TransactionKind action )
100 _capability( capability ), _action( action ) {}
103 TransactionSolutionAction( SolverQueueItem_Ptr item,
104 TransactionKind action )
106 _solverQueueItem( item ), _action( action ) {}
108 TransactionSolutionAction( TransactionKind action )
110 _item(), _action( action ) {}
113 virtual std::ostream &
dumpOn( std::ostream &
str )
const;
114 friend std::ostream&
operator<<(std::ostream&
str,
const TransactionSolutionAction & action)
115 {
return action.dumpOn (
str); }
119 const PoolItem item()
const {
return _item; }
120 const Capability capability()
const {
return _capability; }
121 TransactionKind action()
const {
return _action; }
128 bool skipsPatchesOnly()
const override;
133 Capability _capability;
134 SolverQueueItem_Ptr _solverQueueItem;
136 const TransactionKind _action;
147 } InjectSolutionKind;
157 class InjectSolutionAction:
public SolutionAction
161 InjectSolutionAction( PoolItem item,
162 const InjectSolutionKind & kind)
168 virtual std::ostream &
dumpOn( std::ostream &
str )
const;
169 friend std::ostream&
operator<<(std::ostream&
str,
const InjectSolutionAction & action)
170 {
return action.dumpOn (
str); }
173 const PoolItem item()
const {
return _item; }
180 const InjectSolutionKind _kind;
193 #endif // ZYPP_USE_RESOLVER_INTERNALS 194 #endif // ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H String related utilities and Regular expression matching.
DEFINE_PTR_TYPE(HelixResolvable)
std::ostream & dumpOn(std::ostream &str, const Capability &obj)
Resolver ResolverInternal
Preferred name in API.
std::ostream & operator<<(std::ostream &os, const SolutionActionList &actionlist)
Easy-to use interface to the ZYPP dependency resolver.
std::list< SolutionAction_Ptr > SolutionActionList