libzypp  11.13.5
ResolverProblem.cc
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* ResolverProblem.cc
3  *
4  * Easy-to use interface to the ZYPP dependency resolver
5  *
6  * Copyright (C) 2000-2002 Ximian, Inc.
7  * Copyright (C) 2005 SUSE Linux Products GmbH
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License,
11  * version 2, as published by the Free Software Foundation.
12  *
13  * This program is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21  * 02111-1307, USA.
22  */
23 
24 #include "zypp/ResolverProblem.h"
25 #include "zypp/ProblemSolution.h"
26 
27 using namespace std;
28 
30 namespace zypp
31 {
32 
33 IMPL_PTR_TYPE(ResolverProblem);
34 
35 //---------------------------------------------------------------------------
36 
37 ostream&
38 operator<<( ostream& os, const ResolverProblem & problem)
39 {
40  os << "Problem:" << endl;
41  os << problem._description << endl;
42  os << problem._details << endl;
43  os << problem._solutions;
44  return os;
45 }
46 
47 
48 ostream&
49 operator<<( ostream& os, const ResolverProblemList & problemlist)
50 {
51  for (ResolverProblemList::const_iterator iter = problemlist.begin(); iter != problemlist.end(); ++iter) {
52  if (iter != problemlist.begin())
53  os << ", ";
54  os << (*iter);
55  }
56  return os;
57 }
58 
59 //---------------------------------------------------------------------------
60 
64 ResolverProblem::ResolverProblem( const string & description, const string & details )
65  : _description (description)
66  , _details (details)
67 {
68 }
69 
74 {
75 }
76 
94 {
95  return _solutions;
96 }
97 
103 void
104 ResolverProblem::addSolution( ProblemSolution_Ptr solution,
105  bool inFront )
106 {
107  if (inFront) {
108  _solutions.push_front (solution);
109  } else {
110  _solutions.push_back (solution);
111  }
112 }
113 
114 void
116 {
117  _solutions.clear();
118 }
119 
121 };// namespace zypp