[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