Author: schubi2 Date: Mon Feb 4 14:42:10 2008 New Revision: 8455 URL: http://svn.opensuse.org/viewcvs/zypp?rev=8455&view=rev Log: added vendorcallback for SAT solver Modified: branches/tmp/ma/jump_sat/libzypp/zypp/sat/SATResolver.cc Modified: branches/tmp/ma/jump_sat/libzypp/zypp/sat/SATResolver.cc URL: http://svn.opensuse.org/viewcvs/zypp/branches/tmp/ma/jump_sat/libzypp/zypp/sat/SATResolver.cc?rev=8455&r1=8454&r2=8455&view=diff ============================================================================== --- branches/tmp/ma/jump_sat/libzypp/zypp/sat/SATResolver.cc (original) +++ branches/tmp/ma/jump_sat/libzypp/zypp/sat/SATResolver.cc Mon Feb 4 14:42:10 2008 @@ -23,6 +23,7 @@ #include "zypp/base/String.h" #include "zypp/Capability.h" #include "zypp/ResStatus.h" +#include "zypp/VendorAttr.h" #include "zypp/base/Logger.h" #include "zypp/base/String.h" #include "zypp/base/Gettext.h" @@ -60,7 +61,15 @@ // for the pool. Documents already inserted items. //--------------------------------------------------------------------------- - +// Callbacks for SAT policies +//--------------------------------------------------------------------------- + +int vendorCheck (Pool *pool, Solvable *solvable1, Solvable *solvable2) { + DBG << "vendorCheck: " << id2str(pool, solvable1->vendor) << " <--> " << id2str(pool, solvable1->vendor) << endl; + return VendorAttr::instance().equivalent(id2str(pool, solvable1->vendor), id2str(pool, solvable2->vendor)) ? 0:1; +} + +//--------------------------------------------------------------------------- std::ostream & SATResolver::dumpOn( std::ostream & os ) const @@ -94,6 +103,7 @@ //--------------------------------------------------------------------------- + ResPool SATResolver::pool (void) const { @@ -434,6 +444,7 @@ } _solv = solver_create( _SATPool, sat::Pool::instance().systemRepo().get() ); + _solv->vendorCheckCb = &vendorCheck; sat::Pool::instance().prepare(); // Solve ! -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org