Author: schubi2
Date: Wed Nov 28 15:58:02 2007
New Revision: 7962
URL: http://svn.opensuse.org/viewcvs/zypp?rev=7962&view=rev
Log:
API for SAT solver added
Modified:
trunk/libzypp/zypp/sat/SATResolver.cc
trunk/libzypp/zypp/solver/detail/Resolver.cc
Modified: trunk/libzypp/zypp/sat/SATResolver.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/sat/SATResolver.cc?rev=7962&r1=7961&r2=7962&view=diff
==============================================================================
--- trunk/libzypp/zypp/sat/SATResolver.cc (original)
+++ trunk/libzypp/zypp/sat/SATResolver.cc Wed Nov 28 15:58:02 2007
@@ -185,10 +185,10 @@
// if data != NULL, set as APPL_LOW (from establishPool())
static void
-solution_to_pool (PoolItem_Ref item, const ResStatus & status, const ResStatus::TransactByValue causer)
+SATSolutionToPool (PoolItem_Ref item, const ResStatus & status, const ResStatus::TransactByValue causer)
{
if (triggeredSolution.find(item) != triggeredSolution.end()) {
- _XDEBUG("solution_to_pool(" << item << ") is already in the pool --> skip");
+ _XDEBUG("SATSolutionToPool(" << item << ") is already in the pool --> skip");
return;
}
@@ -201,30 +201,30 @@
if (status.isToBeInstalled()) {
r = item.status().setToBeInstalled (causer);
- _XDEBUG("solution_to_pool(" << item << ", " << status << ") install !" << r);
+ _XDEBUG("SATSolutionToPool(" << item << ", " << status << ") install !" << r);
}
else if (status.isToBeUninstalledDueToUpgrade()) {
r = item.status().setToBeUninstalledDueToUpgrade (causer);
- _XDEBUG("solution_to_pool(" << item << ", " << status << ") upgrade !" << r);
+ _XDEBUG("SATSolutionToPool(" << item << ", " << status << ") upgrade !" << r);
}
else if (status.isToBeUninstalled()) {
r = item.status().setToBeUninstalled (causer);
- _XDEBUG("solution_to_pool(" << item << ", " << status << ") remove !" << r);
+ _XDEBUG("SATSolutionToPool(" << item << ", " << status << ") remove !" << r);
}
else if (status.isIncomplete()
|| status.isNeeded()) {
r = item.status().setIncomplete();
- _XDEBUG("solution_to_pool(" << item << ", " << status << ") incomplete !" << r);
+ _XDEBUG("SATSolutionToPool(" << item << ", " << status << ") incomplete !" << r);
}
else if (status.isUnneeded()) {
r = item.status().setUnneeded();
- _XDEBUG("solution_to_pool(" << item << ", " << status << ") unneeded !" << r);
+ _XDEBUG("SATSolutionToPool(" << item << ", " << status << ") unneeded !" << r);
}
else if (status.isSatisfied()) {
r = item.status().setSatisfied();
- _XDEBUG("solution_to_pool(" << item << ", " << status << ") satisfied !" << r);
+ _XDEBUG("SATSolutionToPool(" << item << ", " << status << ") satisfied !" << r);
} else {
- _XDEBUG("solution_to_pool(" << item << ", " << status << ") unchanged !");
+ _XDEBUG("SATSolutionToPool(" << item << ", " << status << ") unchanged !");
}
return;
}
@@ -292,18 +292,18 @@
//------------------------------------------------------------------------------------------------------------
-struct CollectTransact : public resfilter::PoolItemFilterFunctor
+struct SATCollectTransact : public resfilter::PoolItemFilterFunctor
{
SATResolver & resolver;
- CollectTransact (SATResolver & r)
+ SATCollectTransact (SATResolver & r)
: resolver (r)
{ }
bool operator()( PoolItem_Ref item ) // only transacts() items go here
{
ResStatus status = item.status();
- _XDEBUG( "CollectTransact(" << item << ")" );
+ _XDEBUG( "SATCollectTransact(" << item << ")" );
bool by_solver = (status.isBySolver() || status.isByApplLow());
if (by_solver) {
@@ -357,10 +357,12 @@
bool
SATResolver::resolvePool()
{
- CollectTransact info (*this);
+ SATCollectTransact info (*this);
MIL << "SATResolver::resolvePool()" << endl;
+ queue_init( &jobQueue );
+
invokeOnEach ( _pool.begin(), _pool.end(),
resfilter::ByTransact( ), // collect transacts from Pool to resolver queue
functor::functorRef