libzypp  13.10.6
ProblemSolution.h
Go to the documentation of this file.
1 
9 #ifndef ZYPP_PROBLEMSOLUTION_H
10 #define ZYPP_PROBLEMSOLUTION_H
11 
12 #include <list>
13 #include <string>
14 
16 #include "zypp/base/PtrTypes.h"
18 #include "zypp/ResolverProblem.h"
21 
23 namespace zypp
24 {
25 
26 
43  {
44  protected:
45 
50  void clear();
51 
52  //
53  // Data members
54  //
55  ResolverProblem_Ptr _problem;
57  std::string _description;
58  std::string _details;
59 
60  public:
61 
65  ProblemSolution( ResolverProblem_Ptr parent, const std::string & description, const std::string & details );
66 
71 
72  // ---------------------------------- I/O
73 
74  friend std::ostream& operator<<(std::ostream&, const ProblemSolution & solution);
75  friend std::ostream& operator<<(std::ostream&, const ProblemSolutionList & solutionlist);
76  friend std::ostream& operator<<(std::ostream&, const CProblemSolutionList & solutionlist);
77 
78  // ---------------------------------- accessors
82  std::string description() const { return _description; }
83 
88  std::string details() const { return _details; }
89 
93  ResolverProblem_Ptr problem() const { return _problem; }
94 
95  // ---------------------------------- methods
96 
102  bool apply (solver::detail::Resolver & resolver);
103 
107  void addAction( solver::detail::SolutionAction_constPtr action );
108 
110 
111  };
112 
113 
115 };// namespace zypp
117 
118 #endif // ZYPP_PROBLEMSOLUTION_H
119 
std::list< ProblemSolution_Ptr > ProblemSolutionList
Definition: ProblemTypes.h:42
friend std::ostream & operator<<(std::ostream &, const ProblemSolution &solution)
std::string description() const
Return a one-line text description of this solution.
std::string details() const
Return a (possibly multi-line) detailed description of this solution or an empty string if there are ...
ResolverProblem_Ptr problem() const
Return the parent dependency problem.
void addAction(solver::detail::SolutionAction_constPtr action)
Add an action to the actions list.
void clear()
Clear all data.
A mid layer class we should remove.
Definition: Resolver.h:101
solver::detail::CSolutionActionList actions()
Base class for reference counted objects.
std::list< SolutionAction_constPtr > CSolutionActionList
Definition: Types.h:58
ResolverProblem_Ptr _problem
bool apply(solver::detail::Resolver &resolver)
Apply this solution, i.e.
ProblemSolution(ResolverProblem_Ptr parent, const std::string &description, const std::string &details)
Constructor.
solver::detail::CSolutionActionList _actions
Class representing one possible solution to one problem found during resolving.
~ProblemSolution()
Destructor.
std::list< ProblemSolution_constPtr > CProblemSolutionList
Definition: ProblemTypes.h:43