[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;
   }
 };