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)