00001 00009 #ifndef ZYPP_RESOLVERPROBLEM_H 00010 #define ZYPP_RESOLVERPROBLEM_H 00011 00012 #include <list> 00013 #include <string> 00014 00015 #include "zypp/base/ReferenceCounted.h" 00016 #include "zypp/base/PtrTypes.h" 00017 #include "zypp/Resolver.h" 00018 #include "zypp/ProblemSolution.h" 00019 00021 namespace zypp 00022 { 00023 00024 00025 class ResolverProblem : public base::ReferenceCounted 00026 { 00027 private: 00028 00033 void clear(); 00034 00035 00036 // 00037 // Data members 00038 // 00039 00040 Resolver_constPtr _resolver; 00041 std::string _description; 00042 std::string _details; 00043 ProblemSolutionList _solutions; 00044 00045 public: 00046 00050 ResolverProblem( const std::string & description, const std::string & details ); 00051 00055 ~ResolverProblem(); 00056 00057 // ---------------------------------- I/O 00058 00059 friend std::ostream& operator<<(std::ostream&, const ResolverProblem & problem); 00060 00061 // ---------------------------------- accessors 00062 00066 std::string description() const { return _description; } 00067 00072 std::string details() const { return _details; } 00073 00088 ProblemSolutionList solutions() const; 00089 00093 Resolver_constPtr resolver() const { return _resolver; } 00094 00095 // ---------------------------------- methods 00096 00101 void addSolution( ProblemSolution_Ptr solution ); 00102 00103 }; 00105 };// namespace zypp 00107 00108 #endif // ZYPP_RESOLVERPROBLEM_H 00109