]> git.saurik.com Git - apt.git/commitdiff
Sync
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:50:57 +0000 (16:50 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:50:57 +0000 (16:50 +0000)
Author: jgg
Date: 1998-09-07 05:28:32 GMT
Sync

apt-pkg/contrib/progress.cc
apt-pkg/depcache.cc
apt-pkg/depcache.h
apt-pkg/pkgcachegen.cc

index 074de0805b3548d9fdfb01fecfb8b1ae4ea25f22..9a29c4b662285ec6cff4f204589abc3b3d635352 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: progress.cc,v 1.6 1998/08/26 04:52:28 jgg Exp $
+// $Id: progress.cc,v 1.7 1998/09/07 05:28:38 jgg Exp $
 /* ######################################################################
    
    OpProgress - Operation Progress
@@ -27,7 +27,9 @@ OpProgress::OpProgress() : Current(0), Total(0), Size(0), SubTotal(1),
                                                                        /*}}}*/
 // OpProgress::Progress - Sub progress with no state change            /*{{{*/
 // ---------------------------------------------------------------------
-/* This assumes that Size is the same as the current sub size */
+/* Current is the Base Overall progress in units of Total. Cur is the sub
+   progress in units of SubTotal. Size is a scaling factor that says what
+   percent of Total SubTotal is. */
 void OpProgress::Progress(unsigned long Cur)
 {
    Percent = (Current + Cur/((float)SubTotal)*Size)*100.0/Total;
index 71a0d02a2f9b3e88e08f113afa8a68a5a4f38eaf..a0896b3dc424efdb385605ee83cc853d81e05cc7 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: depcache.cc,v 1.2 1998/07/12 23:58:24 jgg Exp $
+// $Id: depcache.cc,v 1.3 1998/09/07 05:28:32 jgg Exp $
 /* ######################################################################
 
    Dependency Cache - Caches Dependency information.
 // DepCache::pkgDepCache - Constructors                                        /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-pkgDepCache::pkgDepCache(MMap &Map) :
-             pkgCache(Map), PkgState(0), DepState(0) 
+pkgDepCache::pkgDepCache(MMap &Map,OpProgress &Prog) :
+             pkgCache(Map), PkgState(0), DepState(0)
 {
    if (_error->PendingError() == false)
-      Init();
+      Init(&Prog);
 }
                                                                        /*}}}*/
 // DepCache::~pkgDepCache - Destructor                                 /*{{{*/
@@ -36,23 +36,10 @@ pkgDepCache::~pkgDepCache()
    delete [] DepState;
 }
                                                                        /*}}}*/
-// DepCache::ReMap - Regenerate the extra data for the new cache       /*{{{*/
-// ---------------------------------------------------------------------
-/* pkgCache's constructors call this function, but because the object is not
-   fully constructed at that point it will not result in this function being
-   called but pkgCache::ReMap will be instead.*/
-bool pkgDepCache::ReMap()
-{
-   if (pkgCache::ReMap() == false)
-      return false;
-   
-   return Init();
-}
-                                                                       /*}}}*/
 // DepCache::Init - Generate the initial extra structures.             /*{{{*/
 // ---------------------------------------------------------------------
 /* This allocats the extension buffers and initializes them. */
-bool pkgDepCache::Init()
+bool pkgDepCache::Init(OpProgress *Prog)
 {
    delete [] PkgState;
    delete [] DepState;
@@ -61,10 +48,21 @@ bool pkgDepCache::Init()
    memset(PkgState,0,sizeof(*PkgState)*Head().PackageCount);
    memset(DepState,0,sizeof(*DepState)*Head().DependsCount); 
    
+   if (Prog != 0)
+   {
+      Prog->OverallProgress(0,2*Head().PackageCount,Head().PackageCount,
+                           "Building Dependancy Tree");
+      Prog->SubProgress(Head().PackageCount,"Candidate Versions");
+   }
+   
    /* Set the current state of everything. In this state all of the
       packages are kept exactly as is. See AllUpgrade */
-   for (PkgIterator I = PkgBegin(); I.end() != true; I++)
+   int Done = 0;
+   for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++)
    {
+      if (Prog != 0)
+        Prog->Progress(Done);
+      
       // Find the proper cache slot
       StateCache &State = PkgState[I->ID];
       State.iFlags = 0;
@@ -77,7 +75,16 @@ bool pkgDepCache::Init()
       State.Update(I,*this);
    }   
    
-   Update();
+   if (Prog != 0)
+   {
+      
+      Prog->OverallProgress(Head().PackageCount,2*Head().PackageCount,
+                           Head().PackageCount,
+                           "Building Dependancy Tree");
+      Prog->SubProgress(Head().PackageCount,"Dependency Generation");
+   }
+   
+   Update(Prog);
    
    return true;
 } 
@@ -392,7 +399,7 @@ void pkgDepCache::UpdateVerState(PkgIterator Pkg)
 // ---------------------------------------------------------------------
 /* This will figure out the state of all the packages and all the 
    dependencies based on the current policy. */
-void pkgDepCache::Update()
+void pkgDepCache::Update(OpProgress *Prog)
 {   
    iUsrSize = 0;
    iDownloadSize = 0;
@@ -403,8 +410,11 @@ void pkgDepCache::Update()
    iBadCount = 0;
    
    // Perform the depends pass
-   for (PkgIterator I = PkgBegin(); I.end() != true; I++)
+   int Done = 0;
+   for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++)
    {
+      if (Prog != 0 && Done%20 == 0)
+        Prog->Progress(Done);
       for (VerIterator V = I.VersionList(); V.end() != true; V++)
       {
         unsigned char Group = 0;
@@ -432,6 +442,9 @@ void pkgDepCache::Update()
       UpdateVerState(I);
       AddStates(I);
    }
+
+   if (Prog != 0)      
+      Prog->Progress(Done);
 }
                                                                        /*}}}*/
 // DepCache::Update - Update the deps list of a package                        /*{{{*/
index 6cb8c11879268fc3b3db09ff299ba51e1eab7890..8d90a529ff772185263be8eac83b5324b74409aa 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: depcache.h,v 1.3 1998/07/12 23:58:25 jgg Exp $
+// $Id: depcache.h,v 1.4 1998/09/07 05:28:35 jgg Exp $
 /* ######################################################################
 
    DepCache - Dependency Extension data for the cache
@@ -44,6 +44,7 @@
 #endif
 
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/progress.h>
 
 class pkgDepCache : public pkgCache
 {
@@ -109,7 +110,7 @@ class pkgDepCache : public pkgCache
    void BuildGroupOrs(VerIterator const &V);
    void UpdateVerState(PkgIterator Pkg);
 
-   bool Init();
+   bool Init(OpProgress *Prog);
 
    protected:
 
@@ -165,11 +166,8 @@ class pkgDepCache : public pkgCache
    void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true);
    
    // This is for debuging
-   void Update();
+   void Update(OpProgress *Prog = 0);
 
-   // Hook to keep the extra data in sync
-   virtual bool ReMap();
-   
    // Size queries
    inline long UsrSize() {return iUsrSize;};
    inline long DebSize() {return iDownloadSize;};
@@ -179,7 +177,7 @@ class pkgDepCache : public pkgCache
    inline long BrokenCount() {return iBrokenCount;};
    inline long BadCount() {return iBadCount;};
    
-   pkgDepCache(MMap &Map);
+   pkgDepCache(MMap &Map,OpProgress &Prog);
    virtual ~pkgDepCache();
 };
 
index c3bf1cf36695c27cf868a853e5c1b14e78675dd9..825af40c0ac1fc21e4cc84bfccb7426bc8e13201 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: pkgcachegen.cc,v 1.14 1998/08/26 04:52:23 jgg Exp $
+// $Id: pkgcachegen.cc,v 1.15 1998/09/07 05:28:37 jgg Exp $
 /* ######################################################################
    
    Package Cache Generator - Generator for the cache structure.
@@ -70,6 +70,7 @@ bool pkgCacheGenerator::MergeList(ListParser &List)
 {
    List.Owner = this;
 
+   int Counter = 0;
    while (List.Step() == true)
    {
       // Get a pointer to the package structure
@@ -77,7 +78,9 @@ bool pkgCacheGenerator::MergeList(ListParser &List)
       pkgCache::PkgIterator Pkg;
       if (NewPackage(Pkg,PackageName) == false)
         return _error->Error("Error occured while processing %s (NewPackage)",PackageName.c_str());
-      Progress.Progress(List.Offset());
+      Counter++;
+      if (Counter % 100 == 0)
+        Progress.Progress(List.Offset());
 
       /* Get a pointer to the version structure. We know the list is sorted
          so we use that fact in the search. Insertion of new versions is