libzypp  13.10.6
zypp::ProblemSolution Class Reference

Class representing one possible solution to one problem found during resolving. More...

#include <ProblemSolution.h>

Inheritance diagram for zypp::ProblemSolution:
zypp::base::ReferenceCounted zypp::solver::detail::ProblemSolutionCombi zypp::solver::detail::ProblemSolutionIgnore

Public Member Functions

 ProblemSolution (ResolverProblem_Ptr parent, const std::string &description, const std::string &details)
 Constructor. More...
 
 ~ProblemSolution ()
 Destructor. More...
 
std::string description () const
 Return a one-line text description of this solution. More...
 
std::string details () const
 Return a (possibly multi-line) detailed description of this solution or an empty string if there are no useful details. More...
 
ResolverProblem_Ptr problem () const
 Return the parent dependency problem. More...
 
bool apply (solver::detail::Resolver &resolver)
 Apply this solution, i.e. More...
 
void addAction (solver::detail::SolutionAction_constPtr action)
 Add an action to the actions list. More...
 
solver::detail::CSolutionActionList actions ()
 
- Public Member Functions inherited from zypp::base::ReferenceCounted
 ReferenceCounted ()
 Default ctor. More...
 
 ReferenceCounted (const ReferenceCounted &rhs)
 Copy ctor. More...
 
virtual ~ReferenceCounted ()
 Dtor. More...
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment. More...
 
unsigned refCount () const
 Return reference counter value. More...
 
void ref () const
 Add a reference. More...
 
void unref () const
 Release a reference. More...
 

Protected Member Functions

void clear ()
 Clear all data. More...
 
- Protected Member Functions inherited from zypp::base::ReferenceCounted
virtual std::ostream & dumpOn (std::ostream &str) const
 Overload to realize std::ostream & operator<<. More...
 
virtual void ref_to (unsigned) const
 Trigger derived classes after refCount was increased. More...
 
virtual void unref_to (unsigned) const
 Trigger derived classes after refCount was decreased. More...
 

Protected Attributes

ResolverProblem_Ptr _problem
 
solver::detail::CSolutionActionList _actions
 
std::string _description
 
std::string _details
 

Friends

std::ostream & operator<< (std::ostream &, const ProblemSolution &solution)
 
std::ostream & operator<< (std::ostream &, const ProblemSolutionList &solutionlist)
 
std::ostream & operator<< (std::ostream &, const CProblemSolutionList &solutionlist)
 

Additional Inherited Members

- Static Public Member Functions inherited from zypp::base::ReferenceCounted
static void add_ref (const ReferenceCounted *ptr_r)
 Called by zypp::intrusive_ptr to add a reference. More...
 
static void release (const ReferenceCounted *ptr_r)
 Called by zypp::intrusive_ptr to add a reference. More...
 

Detailed Description

Class representing one possible solution to one problem found during resolving.

All problems should have at least 2-3 (mutually exclusive) solutions:

  • Undo: Do not perform the offending transaction (do not install the package that had unsatisfied requirements, do not remove the package that would break other packages' requirements)
  • Remove referrers: Remove all packages that would break because they depend on the package that is requested to be removed
  • Ignore: Inject artificial "provides" for a missing requirement (pretend that requirement is satisfied)

Definition at line 42 of file ProblemSolution.h.

Constructor & Destructor Documentation

zypp::ProblemSolution::ProblemSolution ( ResolverProblem_Ptr  parent,
const std::string &  description,
const std::string &  details 
)

Constructor.

Definition at line 71 of file ProblemSolution.cc.

zypp::ProblemSolution::~ProblemSolution ( )

Destructor.

Definition at line 79 of file ProblemSolution.cc.

Member Function Documentation

void zypp::ProblemSolution::clear ( )
protected

Clear all data.

In particular, delete all members of _actions.

Definition at line 120 of file ProblemSolution.cc.

std::string zypp::ProblemSolution::description ( ) const
inline

Return a one-line text description of this solution.

Definition at line 82 of file ProblemSolution.h.

std::string zypp::ProblemSolution::details ( ) const
inline

Return a (possibly multi-line) detailed description of this solution or an empty string if there are no useful details.

Definition at line 88 of file ProblemSolution.h.

ResolverProblem_Ptr zypp::ProblemSolution::problem ( ) const
inline

Return the parent dependency problem.

Definition at line 93 of file ProblemSolution.h.

bool zypp::ProblemSolution::apply ( solver::detail::Resolver resolver)

Apply this solution, i.e.

execute all of its actions.

Returns 'true' on success, 'false' if actions could not be performed.

Definition at line 91 of file ProblemSolution.cc.

void zypp::ProblemSolution::addAction ( solver::detail::SolutionAction_constPtr  action)

Add an action to the actions list.

Definition at line 113 of file ProblemSolution.cc.

solver::detail::CSolutionActionList zypp::ProblemSolution::actions ( )
inline

Definition at line 109 of file ProblemSolution.h.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  ,
const ProblemSolution solution 
)
friend
std::ostream& operator<< ( std::ostream &  ,
const ProblemSolutionList solutionlist 
)
friend
std::ostream& operator<< ( std::ostream &  ,
const CProblemSolutionList solutionlist 
)
friend

Member Data Documentation

ResolverProblem_Ptr zypp::ProblemSolution::_problem
protected

Definition at line 55 of file ProblemSolution.h.

solver::detail::CSolutionActionList zypp::ProblemSolution::_actions
protected

Definition at line 56 of file ProblemSolution.h.

std::string zypp::ProblemSolution::_description
protected

Definition at line 57 of file ProblemSolution.h.

std::string zypp::ProblemSolution::_details
protected

Definition at line 58 of file ProblemSolution.h.


The documentation for this class was generated from the following files: