X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/2d403b92011c6e4a317a48284e7c68952ce5ddcd..319810767180e5c57c296b06c93e3ebec9f36a8e:/apt-pkg/depcache.h diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index e6110ea19..0306861a1 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -392,30 +392,56 @@ 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); - /** \return \b true if it's OK for MarkInstall to recursively - * install the given package automatically. - * - * \param Pkg the package that MarkInstall wants to install. - * - * \param Depth output depth used for the debugging messages - * - * The default implementation unconditionally returns \b true. - */ - virtual bool IsAutoInstallOk(const PkgIterator &Pkg, - unsigned long Depth = 0); - 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);