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! 
   43      class SolutionAction : 
public base::ReferenceCounted
 
   50        virtual ~SolutionAction();
 
   52        virtual std::ostream & 
dumpOn( std::ostream & str ) 
const;
 
   58        virtual bool execute( ResolverInternal & resolver ) 
const = 0;
 
   62        virtual PoolItem item() 
const;
 
   65        virtual bool skipsPatchesOnly() 
const;
 
   68      inline std::ostream & 
operator<<( std::ostream & str, 
const SolutionAction & action )
 
   69      { 
return action.dumpOn( str ); }
 
   87        REMOVE_EXTRA_CONFLICT,
 
   89        REMOVE_SOLVE_QUEUE_ITEM,
 
   92      class TransactionSolutionAction: 
public SolutionAction
 
   95        TransactionSolutionAction( PoolItem item, TransactionKind action )
 
  101        TransactionSolutionAction( Capability capability, TransactionKind action )
 
  104        , _capability( capability )
 
  107        TransactionSolutionAction( SolverQueueItem_Ptr item, TransactionKind action )
 
  110        , _solverQueueItem( item )
 
  113        TransactionSolutionAction( TransactionKind action )
 
  118        std::ostream & 
dumpOn( std::ostream & str ) 
const override;
 
  120        bool execute( ResolverInternal & resolver ) 
const override;
 
  123        PoolItem item()
 const override 
  126        bool skipsPatchesOnly() 
const override;
 
  129        const TransactionKind _action;
 
  132        Capability _capability;
 
  133        SolverQueueItem_Ptr _solverQueueItem;
 
  143      } InjectSolutionKind;
 
  152      class InjectSolutionAction: 
public SolutionAction
 
  155        InjectSolutionAction( PoolItem item, 
const InjectSolutionKind & kind )
 
  161        std::ostream & 
dumpOn( std::ostream & str ) 
const override;
 
  163        bool execute( ResolverInternal & resolver ) 
const override;
 
  166        PoolItem item()
 const  override 
  170        const InjectSolutionKind _kind;
 
std::ostream & operator<<(std::ostream &str, const SolutionActionList &actionlist)
std::list< SolutionAction_Ptr > SolutionActionList
Resolver ResolverInternal
Preferred name in API.
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & dumpOn(std::ostream &str, const Capability &obj)
#define DEFINE_PTR_TYPE(NAME)
Forward declaration of Ptr types.