]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/algorithms.h
* slighly more debug output, renamed "--automatic-remove" to "--auto-remove"
[apt.git] / apt-pkg / algorithms.h
index 00b7882e248eef893c295233b436b2e7ea6b1ccc..02b40e15f0fa221a82deae30f678d6dbd904808c 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: algorithms.h,v 1.9 2001/02/20 07:03:17 jgg Exp $
+// $Id: algorithms.h,v 1.10 2001/05/22 04:17:41 jgg Exp $
 /* ######################################################################
 
    Algorithms - A set of misc algorithms
 #include <apt-pkg/packagemanager.h>
 #include <apt-pkg/depcache.h>
 
+#include <iostream>
+
+using std::ostream;
+
 class pkgSimulate : public pkgPackageManager
 {
    protected:
@@ -63,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:
 
@@ -126,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