#ifndef ZYPP_SOLVER_DETAIL_SAT_RESOLVER_H
#define ZYPP_SOLVER_DETAIL_SAT_RESOLVER_H
-#ifndef ZYPP_USE_RESOLVER_INTERNALS
-#error Do not directly include this file!
-#else
+
extern "C"
{
#include <solv/solver.h>
#include "zypp/Capability.h"
#include "zypp/solver/detail/SolverQueueItem.h"
-#include "zypp/sat/detail/PoolMember.h"
-
/////////////////////////////////////////////////////////////////////////
namespace zypp
{ ///////////////////////////////////////////////////////////////////////
* via solver::detail::Resolver to SATResolver is pedestrian and error prone.
* Introdce a dedicated solver option structure which is passed down as a whole.
*/
-class SATResolver : public base::ReferenceCounted, private base::NonCopyable, private sat::detail::PoolMember
-{
+class SATResolver : public base::ReferenceCounted, private base::NonCopyable {
private:
ResPool _pool;
- sat::detail::CPool *_satPool;
- sat::detail::CSolver *_satSolver;
- sat::detail::CQueue _jobQueue;
+ Pool *_SATPool;
+ Solver *_solv;
+ Queue _jobQueue;
// list of problematic items (orphaned)
PoolItemList _problem_items;
public:
- SATResolver (const ResPool & pool, sat::detail::CPool *satPool);
+ SATResolver (const ResPool & pool, Pool *SATPool);
virtual ~SATResolver();
// ---------------------------------- I/O
ResolverProblemList problems ();
void applySolutions (const ProblemSolutionList &solutions);
+ void addPoolItemToInstall (PoolItem item);
+ void addPoolItemsToInstallFromList (PoolItemList & rl);
+
+ void addPoolItemToLock (PoolItem item);
+ void addPoolItemToKeep (PoolItem item);
+
+ void addPoolItemToRemove (PoolItem item);
+ void addPoolItemsToRemoveFromList (PoolItemList & rl);
+
bool fixsystem () const {return _fixsystem;}
void setFixsystem ( const bool fixsystem) { _fixsystem = fixsystem;}
void setCleandepsOnRemove( bool state_r ) { _cleandepsOnRemove = state_r; }
PoolItemList problematicUpdateItems( void ) const { return _problem_items; }
- PoolItemList problematicUpdateItems() { return _problem_items; }
PoolItemList resultItemsToInstall () { return _result_items_to_install; }
PoolItemList resultItemsToRemove () { return _result_items_to_remove; }
+ PoolItemList problematicUpdateItems() { return _problem_items; }
sat::StringQueue autoInstalled() const;
sat::StringQueue userInstalled() const;
///////////////////////////////////////////////////////////////////////
};// namespace zypp
/////////////////////////////////////////////////////////////////////////
-#endif // ZYPP_USE_RESOLVER_INTERNALS
+
#endif // ZYPP_SOLVER_DETAIL_SAT_RESOLVER_H