libzypp  15.3.0
zypp::ProblemSolution Class Reference

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

#include <ProblemSolution.h>

Inheritance diagram for zypp::ProblemSolution:

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...
 
ReferenceCounted & operator= (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: