21#ifndef ZYPP_SOLVER_DETAIL_QUEUEITEM_H
22#define ZYPP_SOLVER_DETAIL_QUEUEITEM_H
23#ifndef ZYPP_USE_RESOLVER_INTERNALS
24#error Do not directly include this file!
57 QUEUE_ITEM_TYPE_UNKNOWN = 0,
58 QUEUE_ITEM_TYPE_UPDATE,
59 QUEUE_ITEM_TYPE_INSTALL,
60 QUEUE_ITEM_TYPE_DELETE,
61 QUEUE_ITEM_TYPE_INSTALL_ONE_OF,
68#define CMP(a,b) (((a) < (b)) - ((b) < (a)))
78 SolverQueueItemType _type;
83 SolverQueueItem (SolverQueueItemType type, ResPool pool);
87 virtual ~SolverQueueItem();
91 virtual std::ostream &
dumpOn( std::ostream & str )
const;
93 friend std::ostream&
operator<<(std::ostream & str,
const SolverQueueItem & obj)
94 {
return obj.dumpOn (str); }
95 friend std::ostream&
operator<<(std::ostream & str,
const SolverQueueItemList & itemlist);
99 ResPool pool (
void)
const {
return _pool; }
103 void copy (
const SolverQueueItem *from);
105 bool isDelete (
void)
const {
return _type == QUEUE_ITEM_TYPE_DELETE; }
106 bool isInstall (
void)
const {
return _type == QUEUE_ITEM_TYPE_INSTALL; }
107 bool isUpdate (
void)
const {
return _type == QUEUE_ITEM_TYPE_UPDATE; }
108 bool isLock (
void)
const {
return _type == QUEUE_ITEM_TYPE_LOCK; }
109 bool isInstallOneOf (
void)
const {
return _type == QUEUE_ITEM_TYPE_INSTALL_ONE_OF; }
112 virtual SolverQueueItem_Ptr
copy (
void)
const = 0;
113 virtual bool addRule (sat::detail::CQueue & q) =0 ;
114 virtual int cmp (SolverQueueItem_constPtr item)
const = 0;
115 int compare (SolverQueueItem_constPtr item)
const {
return CMP(_type, item->_type); }
std::ostream & operator<<(std::ostream &str, const zypp::sat::detail::CDataiterator *obj)
SetCompare compare(const SetRelationMixin< Derived > &src, const SetRelationMixin< Derived > &trg)
Compare sets.
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
std::ostream & copy(std::istream &from_r, std::ostream &to_r)
Copy istream to ostream.
std::list< SolverQueueItem_Ptr > SolverQueueItemList
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & dumpOn(std::ostream &str, const Capability &obj)
#define DEFINE_PTR_TYPE(NAME)
Forward declaration of Ptr types.