summaryrefslogtreecommitdiff
path: root/apt-pkg/depcache.h
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/depcache.h')
-rw-r--r--apt-pkg/depcache.h51
1 files changed, 47 insertions, 4 deletions
diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h
index f41ad17e9..0306861a1 100644
--- a/apt-pkg/depcache.h
+++ b/apt-pkg/depcache.h
@@ -294,7 +294,10 @@ class pkgDepCache : protected pkgCache::Namespace
unsigned long iBrokenCount;
unsigned long iPolicyBrokenCount;
unsigned long iBadCount;
-
+
+ bool DebugMarker;
+ bool DebugAutoInstall;
+
Policy *delLocalPolicy; // For memory clean up..
Policy *LocalPolicy;
@@ -387,18 +390,58 @@ class pkgDepCache : protected pkgCache::Namespace
*/
// @{
void MarkKeep(PkgIterator const &Pkg, bool Soft = false,
- bool FromUser = true);
- void MarkDelete(PkgIterator const &Pkg,bool Purge = false);
+ bool FromUser = true, unsigned long Depth = 0);
+ void MarkDelete(PkgIterator const &Pkg, bool Purge = false,
+ 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);
+
void SetReInstall(PkgIterator const &Pkg,bool To);
void SetCandidateVersion(VerIterator TargetVer);
/** 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.
+ *
+ * See the default implementation for a simple example how this
+ * method can be used.
+ * Overriding implementations should use the hold-state-flag to cache
+ * results from previous checks of this package - also it should
+ * be used if the default resolver implementation is also used to
+ * ensure that these packages are handled like "normal" dpkg holds.
+ *
+ * The parameters are the same as in the calling MarkInstall:
+ * \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.
+ *
+ * See the default implementation for a simple example how this
+ * method can be used.
+ * Overriding implementations should use the hold-state-flag to cache
+ * results from previous checks of this package - also it should
+ * be used if the default resolver implementation is also used to
+ * ensure that these packages are handled like "normal" dpkg holds.
+ *
+ * The parameters are the same as in the calling MarkDelete:
+ * \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);