summaryrefslogtreecommitdiff
path: root/apt-pkg/depcache.h
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2009-06-30 21:44:24 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2009-06-30 21:44:24 +0200
commit6910a2accecd7c8e8493b74130d8dbf3972014a8 (patch)
tree87e53b67bd2d808be6414f7214eecc8e5464009a /apt-pkg/depcache.h
parent92fcbfc16396d9a2fbde0edb0902d4ebe7ff0090 (diff)
* add hook for MarkInstall and MarkDelete (closes: #470035)
* honor the dpkg hold state in new Marker hooks (closes: #64141) Combine the proposed AutoInstOk and IsAutoInstallOk to more general hooks for MarkInstall (and another one for MarkDelete) with the same parameters as the call these hooks should check.
Diffstat (limited to 'apt-pkg/depcache.h')
-rw-r--r--apt-pkg/depcache.h40
1 files changed, 24 insertions, 16 deletions
diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h
index 10f9c1091..44a7f8c02 100644
--- a/apt-pkg/depcache.h
+++ b/apt-pkg/depcache.h
@@ -363,20 +363,6 @@ class pkgDepCache : protected pkgCache::Namespace
*/
virtual bool MarkFollowsSuggests();
- /** \return \b true if it's OK for MarkInstall to recursively
- * install the given version of the given package.
- *
- * \param p the package that MarkInstall wants to install.
- * \param v the version being installed, or an end iterator
- * if p is being removed.
- * \param d the dependency being fixed.
- *
- * The default implementation unconditionally returns \b true.
- */
- virtual bool AutoInstOk(const PkgIterator &p,
- const VerIterator &v,
- const DepIterator &d);
-
/** \brief Update the Marked and Garbage fields of all packages.
*
* This routine is implicitly invoked after all state manipulators
@@ -406,7 +392,7 @@ class pkgDepCache : protected pkgCache::Namespace
void MarkKeep(PkgIterator const &Pkg, bool Soft = false,
bool FromUser = true, unsigned long Depth = 0);
void MarkDelete(PkgIterator const &Pkg, bool Purge = false,
- unsigned long Depth = 0);
+ unsigned long Depth = 0, bool FromUser = true);
void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true,
unsigned long Depth = 0, bool FromUser = true,
bool ForceImportantDeps = false);
@@ -417,7 +403,29 @@ class pkgDepCache : protected pkgCache::Namespace
/** Set the "is automatically installed" flag of Pkg. */
void MarkAuto(const PkgIterator &Pkg, bool Auto);
// @}
-
+
+ /** \return \b true if it's OK for MarkInstall to install
+ * the given package.
+ *
+ * \param Pkg the package that MarkInstall wants to install.
+ * \param AutoInst needs a previous MarkInstall this package?
+ * \param Depth recursive deep of this Marker call
+ * \param FromUser was the install requested by the user?
+ */
+ virtual bool IsInstallOk(const PkgIterator &Pkg,bool AutoInst = true,
+ unsigned long Depth = 0, bool FromUser = true);
+
+ /** \return \b true if it's OK for MarkDelete to remove
+ * the given package.
+ *
+ * \param Pkg the package that MarkDelete wants to remove.
+ * \param Purge should we purge instead of "only" remove?
+ * \param Depth recursive deep of this Marker call
+ * \param FromUser was the remove requested by the user?
+ */
+ virtual bool IsDeleteOk(const PkgIterator &Pkg,bool Purge = false,
+ unsigned long Depth = 0, bool FromUser = true);
+
// This is for debuging
void Update(OpProgress *Prog = 0);