#ifndef ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H
#define ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H
+#ifndef ZYPP_USE_RESOLVER_INTERNALS
+#error Do not directly include this file!
+#else
#include <list>
#include <string>
#include "zypp/base/ReferenceCounted.h"
#include "zypp/base/PtrTypes.h"
-#include "zypp/Dep.h"
-#include "zypp/Capability.h"
-
-#include "zypp/solver/detail/Types.h"
-#include "zypp/solver/detail/Resolver.h"
-#include "zypp/solver/detail/SolverQueueItem.h"
+#include "zypp/PoolItem.h"
/////////////////////////////////////////////////////////////////////////
namespace zypp
namespace detail
{ ///////////////////////////////////////////////////////////////////
+ class Resolver;
+
+ DEFINE_PTR_TYPE(SolverQueueItem);
+
+ DEFINE_PTR_TYPE(SolutionAction);
+ typedef std::list<SolutionAction_Ptr> SolutionActionList;
+
/**
* Abstract base class for one action of a problem solution.
**/
class SolutionAction : public base::ReferenceCounted
{
protected:
+ typedef Resolver ResolverInternal;
SolutionAction ();
public:
virtual ~SolutionAction();
friend std::ostream& operator<<(std::ostream & str, const SolutionAction & action)
{ return action.dumpOn (str); }
friend std::ostream& operator<<(std::ostream & str, const SolutionActionList & actionlist);
- friend std::ostream& operator<<(std::ostream & str, const CSolutionActionList & actionlist);
// ---------------------------------- methods
/**
* Execute this action.
* Returns 'true' on success, 'false' on error.
**/
- virtual bool execute (Resolver & resolver) const = 0;
+ virtual bool execute (ResolverInternal & resolver) const = 0;
};
TransactionKind action() const { return _action; }
// ---------------------------------- methods
- virtual bool execute(Resolver & resolver) const;
+ virtual bool execute(ResolverInternal & resolver) const;
protected:
const PoolItem item() const { return _item; }
// ---------------------------------- methods
- virtual bool execute(Resolver & resolver) const;
+ virtual bool execute(ResolverInternal & resolver) const;
protected:
PoolItem _item;
///////////////////////////////////////////////////////////////////////
};// namespace zypp
/////////////////////////////////////////////////////////////////////////
-
+#endif // ZYPP_USE_RESOLVER_INTERNALS
#endif // ZYPP_SOLVER_DETAIL_SOLUTIONACTION_H