X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/0a8e3465cb644e380ab0fc6d66f6d1f17363b34e..61d6a8de486f2262acbb47cea24f5dae143be8d1:/apt-pkg/algorithms.h diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 0379357c2..d68fbfbea 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: algorithms.h,v 1.4 1998/10/02 04:39:43 jgg Exp $ +// $Id: algorithms.h,v 1.8 1999/10/27 04:38:27 jgg Exp $ /* ###################################################################### Algorithms - A set of misc algorithms @@ -49,7 +49,7 @@ class pkgSimulate : public pkgPackageManager // The Actuall installation implementation virtual bool Install(PkgIterator Pkg,string File); virtual bool Configure(PkgIterator Pkg); - virtual bool Remove(PkgIterator Pkg); + virtual bool Remove(PkgIterator Pkg,bool Purge); void ShortBreaks(); public: @@ -68,7 +68,8 @@ class pkgProblemResolver typedef pkgCache::Package Package; enum Flags {Protected = (1 << 0), PreInstalled = (1 << 1), - Upgradable = (1 << 2), ReInstateTried = (1 << 3)}; + Upgradable = (1 << 2), ReInstateTried = (1 << 3), + ToRemove = (1 << 4)}; signed short *Scores; unsigned char *Flags; bool Debug; @@ -89,13 +90,17 @@ class pkgProblemResolver public: inline void Protect(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= Protected;}; - + inline void Remove(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= ToRemove;}; + inline void Clear(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] &= ~(Protected | ToRemove);}; + // Try to intelligently resolve problems by installing and removing packages bool Resolve(bool BrokenFix = false); - + // Try to resolve problems only by using keep bool ResolveByKeep(); - + + void InstallProtect(); + pkgProblemResolver(pkgDepCache &Cache); }; @@ -103,5 +108,6 @@ bool pkgDistUpgrade(pkgDepCache &Cache); bool pkgApplyStatus(pkgDepCache &Cache); bool pkgFixBroken(pkgDepCache &Cache); bool pkgAllUpgrade(pkgDepCache &Cache); +bool pkgMinimizeUpgrade(pkgDepCache &Cache); #endif