]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/orderlist.h
Fixed for 0 length source files
[apt.git] / apt-pkg / orderlist.h
index 2065fc4c81ff4b7bd284589e1f50e9b702fd9603..7e1b8efbc9e446dd0d86c52a799f59651ff950f7 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: orderlist.h,v 1.2 1998/07/12 23:58:29 jgg Exp $
+// $Id: orderlist.h,v 1.7 1999/08/12 05:59:54 jgg Exp $
 /* ######################################################################
 
    Order List - Represents and Manipulates an ordered list of packages.
@@ -48,6 +48,7 @@ class pkgOrderList
    // State
    Package **End;
    Package **List;
+   string *FileList;
    DepIterator Loops[20];
    int LoopCount;
    int Depth;
@@ -58,7 +59,7 @@ class pkgOrderList
    bool VisitDeps(DepFunc F,PkgIterator Pkg);
    bool VisitRDeps(DepFunc F,PkgIterator Pkg);
    bool VisitRProvides(DepFunc F,VerIterator Ver);
-   bool VisitProvides(DepIterator Pkg);
+   bool VisitProvides(DepIterator Pkg,bool Critical);
    
    // Dependency checking functions.
    bool DepUnPackCrit(DepIterator D);
@@ -87,7 +88,7 @@ class pkgOrderList
    enum Flags {Added = (1 << 0), AddPending = (1 << 1),
                Immediate = (1 << 2), Loop = (1 << 3),
                UnPacked = (1 << 4), Configured = (1 << 5),
-               Removed = (1 << 6),
+               Removed = (1 << 6),        // Early Remove
                InList = (1 << 7),
                States = (UnPacked | Configured | Removed)};
 
@@ -97,9 +98,11 @@ class pkgOrderList
    void Flag(PkgIterator Pkg,unsigned long State, unsigned long F) {Flags[Pkg->ID] = (Flags[Pkg->ID] & (~F)) | State;};
    inline void Flag(PkgIterator Pkg,unsigned long F) {Flags[Pkg->ID] |= F;};
    inline void Flag(Package *Pkg,unsigned long F) {Flags[Pkg->ID] |= F;};
-   inline bool IsNow(PkgIterator Pkg) {return (Flags[Pkg->ID] & States) == 0;};
+   inline bool IsNow(PkgIterator Pkg) {return (Flags[Pkg->ID] & (States & (~Removed))) == 0;};
+   bool IsMissing(PkgIterator Pkg);
    void WipeFlags(unsigned long F);
-   
+   void SetFileList(string *FileList) {this->FileList = FileList;};
+
    // Accessors
    inline iterator begin() {return List;};
    inline iterator end() {return End;};
@@ -111,7 +114,7 @@ class pkgOrderList
    
    // Ordering modes
    bool OrderCritical();
-   bool OrderUnpack();
+   bool OrderUnpack(string *FileList = 0);
    bool OrderConfigure();
 
    int Score(PkgIterator Pkg);