X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b4fc9b6f648694ecb0d161cb14859da88b36881c..f8ac1720a94468d1384e88a57729e6d9801b56fd:/apt-pkg/algorithms.h diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 0b38e4244..02b40e15f 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -67,8 +67,10 @@ class pkgSimulate : public pkgPackageManager virtual bool Install(PkgIterator Pkg,string File); virtual bool Configure(PkgIterator Pkg); virtual bool Remove(PkgIterator Pkg,bool Purge); + +private: void ShortBreaks(); - void Describe(PkgIterator iPkg,ostream &out,bool Now); + void Describe(PkgIterator iPkg,ostream &out,bool Current,bool Candidate); public: @@ -130,5 +132,22 @@ bool pkgAllUpgrade(pkgDepCache &Cache); bool pkgMinimizeUpgrade(pkgDepCache &Cache); void pkgPrioSortList(pkgCache &Cache,pkgCache::Version **List); + + +// callback function that can be used by the client to bring in +// certain own packages into the root set (if the client returns +// True the package will be considered as part of the root set) +typedef bool (*InRootSetFunc)(pkgCache::PkgIterator); + +// Mark all reachable packages with "pkgDepCache::StateCache.Marked=1" +// the root-set are all essential packages+everything that was not +// installed automatically +// +// If InRootSetFunc is set, it will be called for each PkgIterator. This +// is usefull for clients that have there own idea about the root-set +// +// Everything that is not reach can be removed +bool pkgMarkUsed(pkgDepCache &Cache, InRootSetFunc f=NULL); + #endif