[Aptitude-devel] r3202 - in branches/aptitude-0.3/aptitude: . src/generic src/generic/problemresolver
Daniel Burrows
dburrows@costa.debian.org
Sat, 30 Apr 2005 18:43:52 +0000
Author: dburrows
Date: Sat Apr 30 18:43:49 2005
New Revision: 3202
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/generic/aptcache.cc
branches/aptitude-0.3/aptitude/src/generic/aptcache.h
branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h
branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h
Log:
Add support in the generic part of the code for dumping the *full* resolver state.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Sat Apr 30 18:43:49 2005
@@ -1,5 +1,11 @@
2005-04-30 Daniel Burrows <dburrows@debian.org>
+ * src/generic/aptcache.cc, src/generic/aptcache.h, src/generic/problemresolver/problemresolver.h:
+
+ Add support in the cache abstraction for dumping the resolver
+ state (including, importantly, the current set of version
+ scores).
+
* src/generic/problemresolver/test.cc, src/generic/problemresolver/test1.txt:
Fix the test code to work with the new problem resolver.
Modified: branches/aptitude-0.3/aptitude/src/generic/aptcache.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptcache.cc (original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptcache.cc Sat Apr 30 18:43:49 2005
@@ -1510,6 +1510,26 @@
score);
}
+void aptitudeDepCache::dump_resolver(ostream &out)
+{
+ if(!resolver_exists())
+ return;
+
+ // First, dump the universe.
+ dump_universe(resolver->get_universe(), out);
+
+ // Now dump the scores as a test instruction.
+ out << "TEST " << resolver->get_step_score() << " "
+ << resolver->get_broken_score() << " "
+ << resolver->get_infinity() << " "
+ << resolver->get_max_successors() << " "
+ << resolver->get_full_solution_score() << " ";
+
+ resolver->dump_scores(out);
+
+ out << "( " << aptcfg->FindI(PACKAGE "::Resolver::StepLimit") << " ANY )" << endl;
+}
+
//////////////////// END PROBLEM RESOLVER INTERFACE ////////////////////
aptitudeCacheFile::aptitudeCacheFile()
Modified: branches/aptitude-0.3/aptitude/src/generic/aptcache.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptcache.h (original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptcache.h Sat Apr 30 18:43:49 2005
@@ -35,6 +35,7 @@
#include <sigc++/signal.h>
#include <sigc++/trackable.h>
+#include <iostream>
#include <vector>
class undoable;
@@ -470,6 +471,11 @@
const pkgCache::VerIterator &ver,
int score);
+ /** If a resolver exists, write its state (including scores, etc)
+ * to the given stream.
+ */
+ void dump_resolver(std::ostream &out);
+
bool try_fix_broken(undo_group *undo);
// Attempts to fix any broken packages, dumping the changes the problem
// fixer creates into the given undo group.
Modified: branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h (original)
+++ branches/aptitude-0.3/aptitude/src/generic/aptitude_resolver.h Sat Apr 30 18:43:49 2005
@@ -1061,6 +1061,8 @@
// Look for a valid dep.
normalize();
+
+ return *this;
}
bool end() const
Modified: branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h (original)
+++ branches/aptitude-0.3/aptitude/src/generic/problemresolver/problemresolver.h Sat Apr 30 18:43:49 2005
@@ -1106,6 +1106,12 @@
return universe;
}
+ int get_step_score() {return step_score;}
+ int get_broken_score() {return broken_score;}
+ int get_infinity() {return -minimum_score;}
+ int get_max_successors() {return max_successors;}
+ int get_full_solution_score() {return full_solution_score;}
+
/** Enables or disables debugging. Debugging is initially
* disabled.
*/
@@ -1303,6 +1309,7 @@
out << " >" << std::endl;
}
}
+ out << "}" << std::endl;
}
};