globally enable/disable DBG via macro
[platform/upstream/libzypp.git] / zypp / solver / detail / Types.h
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* Types.h
3  *
4  * Copyright (C) 2005 SUSE Linux Products GmbH
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License,
8  * version 2, as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18  * 02111-1307, USA.
19  */
20
21 #ifndef ZYPP_SOLVER_DETAIL_TYPES_H
22 #define ZYPP_SOLVER_DETAIL_TYPES_H
23
24 #include <iosfwd>
25 #include <list>
26 #include <set>
27 #include <map>
28 #include <string>
29
30 #include "zypp/base/ReferenceCounted.h"
31 #include "zypp/base/NonCopyable.h"
32 #include "zypp/base/PtrTypes.h"
33 #include "zypp/base/Functional.h"
34
35 #include "zypp/PoolItem.h"
36
37 typedef std::list <zypp::PoolItem> PoolItemList;
38 typedef std::set <zypp::PoolItem> PoolItemSet;
39
40 #define _DEBUG(x) DBG << x
41
42 /////////////////////////////////////////////////////////////////////////
43 namespace zypp 
44 { ///////////////////////////////////////////////////////////////////////
45   ///////////////////////////////////////////////////////////////////////
46   namespace solver
47   { /////////////////////////////////////////////////////////////////////
48     /////////////////////////////////////////////////////////////////////
49     namespace detail
50     { ///////////////////////////////////////////////////////////////////
51       
52 DEFINE_PTR_TYPE(Resolver);
53
54 DEFINE_PTR_TYPE(ResolverContext);
55       
56 DEFINE_PTR_TYPE(ResolverInfo);
57 DEFINE_PTR_TYPE(ResolverInfoChildOf);
58 DEFINE_PTR_TYPE(ResolverInfoConflictsWith);
59 DEFINE_PTR_TYPE(ResolverInfoContainer);
60 DEFINE_PTR_TYPE(ResolverInfoDependsOn);
61 DEFINE_PTR_TYPE(ResolverInfoMisc);
62 DEFINE_PTR_TYPE(ResolverInfoMissingReq);
63 DEFINE_PTR_TYPE(ResolverInfoNeededBy);
64 DEFINE_PTR_TYPE(ResolverInfoObsoletes);
65
66 DEFINE_PTR_TYPE(QueueItem);
67 DEFINE_PTR_TYPE(QueueItemBranch);
68 DEFINE_PTR_TYPE(QueueItemConflict);
69 DEFINE_PTR_TYPE(QueueItemEstablish);
70 DEFINE_PTR_TYPE(QueueItemGroup);
71 DEFINE_PTR_TYPE(QueueItemInstall);
72 DEFINE_PTR_TYPE(QueueItemRequire);
73 DEFINE_PTR_TYPE(QueueItemUninstall);
74
75 DEFINE_PTR_TYPE(ResolverQueue);
76       
77 DEFINE_PTR_TYPE(SolutionAction);
78 typedef std::list<SolutionAction_Ptr> SolutionActionList;
79 typedef std::list<SolutionAction_constPtr> CSolutionActionList;
80 DEFINE_PTR_TYPE(TransactionSolutionAction);
81 DEFINE_PTR_TYPE(InjectSolutionAction);
82
83       
84       ///////////////////////////////////////////////////////////////////
85     };// namespace detail
86     /////////////////////////////////////////////////////////////////////
87     /////////////////////////////////////////////////////////////////////
88   };// namespace solver
89   ///////////////////////////////////////////////////////////////////////
90   ///////////////////////////////////////////////////////////////////////
91 };// namespace zypp
92 /////////////////////////////////////////////////////////////////////////
93
94 #endif // ZYPP_SOLVER_DETAIL_TYPES_H