[Aptitude-svn-commit] r3795 - in branches/aptitude-0.3/aptitude: . src/generic

Daniel Burrows dburrows at costa.debian.org
Tue Aug 9 23:57:29 UTC 2005


Author: dburrows
Date: Tue Aug  9 23:57:26 2005
New Revision: 3795

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
Log:
Add hooks to allow clients of aptitudeDepCache to manipulate forbidden versions.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Tue Aug  9 23:57:26 2005
@@ -1,5 +1,10 @@
 2005-08-09  Daniel Burrows  <dburrows at debian.org>
 
+	* src/generic/aptcache.cc, src/generic/aptcache.h:
+
+	  Add hooks in the apt cache interface layer for manipulating
+	  forbidden versions.
+
 	* src/generic/problemresolver/problemresolver.h:
 
 	  Add initial support for user-forbidden versions.

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	Tue Aug  9 23:57:26 2005
@@ -1424,6 +1424,29 @@
     return next_solution();
 }
 
+// At the moment the undo argument is ignored; it's there for future
+// use.
+void aptitudeDepCache::resolver_forbid_version(const aptitude_resolver_version &ver)
+{
+  assert(resolver);
+
+  resolver->forbid_version(ver);
+}
+
+void aptitudeDepCache::resolver_unforbid_version(const aptitude_resolver_version &ver)
+{
+  assert(resolver);
+
+  resolver->unforbid_version(ver);
+}
+
+bool aptitudeDepCache::resolver_is_forbidden(const aptitude_resolver_version &ver)
+{
+  assert(resolver);
+
+  return resolver->is_forbidden(ver);
+}
+
 void aptitudeDepCache::apply_current_solution(undo_group *undo)
 {
   aptitude_resolver::solution sol=get_current_solution();

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	Tue Aug  9 23:57:26 2005
@@ -42,6 +42,7 @@
 class undo_group;
 class pkgProblemResolver;
 class aptitude_universe;
+class aptitude_resolver_version;
 class aptitude_resolver;
 template<class PkgUniverse> class generic_solution;
 
@@ -436,6 +437,25 @@
    */
   void apply_current_solution(undo_group *undo);
 
+  /** Requires that resolver_exists() is \b true.  Forbids the
+   *  currently active resolver from installing the given version.
+   *  This is distinct from our own version forbidding mechanism in
+   *  that it completely prevents the generation of solutions
+   *  containing this version, but it doesn't outlast a single
+   *  resolution session.
+   */
+  void resolver_forbid_version(const aptitude_resolver_version &ver);
+
+  /** Requires that resolver_exists() is \b true.  Cancels a
+   *  forbidding created via resolver_forbid_version().
+   */
+  void resolver_unforbid_version(const aptitude_resolver_version &ver);
+
+  /** Requires the resolver_exists() is \b true.  Returns \b true if
+   *  the given version is currently forbidden.
+   */
+  bool resolver_is_forbidden(const aptitude_resolver_version &ver);
+
   /** Advance to the next solution.
    *
    *  \return the next solution.  This reference is not guaranteed to



More information about the Aptitude-svn-commit mailing list