X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/05f64ca2e483709faa6bc69dfa79129d2d4c679e..bccb344412a0e97afdf0aaaf41a31124c84f6eaa:/apt-pkg/algorithms.h diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 2ac28c0d7..5148ff19d 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -1,6 +1,5 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: algorithms.h,v 1.10 2001/05/22 04:17:41 jgg Exp $ /* ###################################################################### Algorithms - A set of misc algorithms @@ -53,8 +52,10 @@ using std::ostream; #endif +class pkgSimulatePrivate; class pkgSimulate : public pkgPackageManager /*{{{*/ { + pkgSimulatePrivate * const d; protected: class Policy : public pkgDepCache::Policy @@ -62,12 +63,12 @@ class pkgSimulate : public pkgPackageManager /*{{{*/ pkgDepCache *Cache; public: - virtual VerIterator GetCandidateVer(PkgIterator const &Pkg) + virtual VerIterator GetCandidateVer(PkgIterator const &Pkg) APT_OVERRIDE { return (*Cache)[Pkg].CandidateVerIter(*Cache); } - Policy(pkgDepCache *Cache) : Cache(Cache) {}; + explicit Policy(pkgDepCache *Cache) : Cache(Cache) {}; }; unsigned char *Flags; @@ -75,27 +76,34 @@ class pkgSimulate : public pkgPackageManager /*{{{*/ Policy iPolicy; pkgDepCache Sim; pkgDepCache::ActionGroup group; - - // The Actuall installation implementation - virtual bool Install(PkgIterator Pkg,std::string File); - virtual bool Configure(PkgIterator Pkg); - virtual bool Remove(PkgIterator Pkg,bool Purge); + + // The Actual installation implementation + virtual bool Install(PkgIterator Pkg,std::string File) APT_OVERRIDE; + virtual bool Configure(PkgIterator Pkg) APT_OVERRIDE; + virtual bool Remove(PkgIterator Pkg,bool Purge) APT_OVERRIDE; + + // FIXME: trick to avoid ABI break for virtual reimplementation; fix on next ABI break +public: + APT_HIDDEN bool Go2(APT::Progress::PackageManager * progress); private: APT_HIDDEN void ShortBreaks(); APT_HIDDEN void Describe(PkgIterator iPkg,std::ostream &out,bool Current,bool Candidate); + APT_HIDDEN bool RealInstall(PkgIterator Pkg,std::string File); + APT_HIDDEN bool RealConfigure(PkgIterator Pkg); + APT_HIDDEN bool RealRemove(PkgIterator Pkg,bool Purge); public: - pkgSimulate(pkgDepCache *Cache); - ~pkgSimulate(); + explicit pkgSimulate(pkgDepCache *Cache); + virtual ~pkgSimulate(); }; /*}}}*/ class pkgProblemResolver /*{{{*/ { private: /** \brief dpointer placeholder (for later in case we need it) */ - void *d; + void * const d; pkgDepCache &Cache; typedef pkgCache::PkgIterator PkgIterator; @@ -113,8 +121,7 @@ class pkgProblemResolver /*{{{*/ bool Debug; // Sort stuff - static pkgProblemResolver *This; - APT_HIDDEN static int ScoreSort(const void *a,const void *b) APT_PURE; + APT_HIDDEN int ScoreSort(Package const *A, Package const *B) APT_PURE; struct PackageKill { @@ -125,9 +132,6 @@ class pkgProblemResolver /*{{{*/ APT_HIDDEN void MakeScores(); APT_HIDDEN bool DoUpgrade(pkgCache::PkgIterator Pkg); - APT_HIDDEN bool ResolveInternal(bool const BrokenFix = false); - APT_HIDDEN bool ResolveByKeepInternal(); - protected: bool InstOrNewPolicyBroken(pkgCache::PkgIterator Pkg); @@ -138,25 +142,17 @@ class pkgProblemResolver /*{{{*/ inline void Clear(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] &= ~(Protected | ToRemove);}; // Try to intelligently resolve problems by installing and removing packages -#if APT_PKG_ABI >= 413 bool Resolve(bool BrokenFix = false, OpProgress * const Progress = NULL); -#else - bool Resolve(bool BrokenFix = false); - bool Resolve(bool BrokenFix, OpProgress * const Progress); -#endif + APT_HIDDEN bool ResolveInternal(bool const BrokenFix = false); // Try to resolve problems only by using keep -#if APT_PKG_ABI >= 413 bool ResolveByKeep(OpProgress * const Progress = NULL); -#else - bool ResolveByKeep(); - bool ResolveByKeep(OpProgress * const Progress); -#endif + APT_HIDDEN bool ResolveByKeepInternal(); - APT_DEPRECATED void InstallProtect(); + APT_DEPRECATED_MSG("NOOP as MarkInstall enforces not overriding FromUser markings") void InstallProtect(); - pkgProblemResolver(pkgDepCache *Cache); - ~pkgProblemResolver(); + explicit pkgProblemResolver(pkgDepCache *Cache); + virtual ~pkgProblemResolver(); }; /*}}}*/ bool pkgApplyStatus(pkgDepCache &Cache);