X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/254ce4b0cc0336de5a9b46c693673ef68d5628b6..f8ac1720a94468d1384e88a57729e6d9801b56fd:/apt-pkg/algorithms.h diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 210127ab9..02b40e15f 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -133,8 +133,21 @@ bool pkgMinimizeUpgrade(pkgDepCache &Cache); void pkgPrioSortList(pkgCache &Cache,pkgCache::Version **List); -// mark all reachable packages, everything that is not reach can -// be removed -bool pkgMarkUsed(pkgDepCache &Cache); + +// 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