]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire.h
* removed the pragma mess
[apt.git] / apt-pkg / acquire.h
index bf43ac7039a2b4d9525d234c61a253a24fc1e6c8..6e836ac49e4020bd1e78365d7c9665c741044a20 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire.h,v 1.23 1999/07/09 04:38:00 jgg Exp $
+// $Id: acquire.h,v 1.29.2.1 2003/12/24 23:09:17 mdz Exp $
 /* ######################################################################
 
    Acquire - File Acquiration
@@ -35,9 +35,9 @@
 #include <vector>
 #include <string>
 
-#ifdef __GNUG__
-#pragma interface "apt-pkg/acquire.h"
-#endif 
+using std::vector;
+using std::string;
+
 
 #include <sys/time.h>
 #include <unistd.h>
@@ -52,8 +52,11 @@ class pkgAcquire
    class Worker;
    struct MethodConfig;
    struct ItemDesc;
-   friend Item;
-   friend Queue;
+   friend class Item;
+   friend class Queue;
+
+   typedef vector<Item *>::iterator ItemIterator;
+   typedef vector<Item *>::const_iterator ItemCIterator;
    
    protected:
    
@@ -94,14 +97,14 @@ class pkgAcquire
 
    enum RunResult {Continue,Failed,Cancelled};
 
-   RunResult Run();
+   RunResult Run(int PulseIntervall=500000);
    void Shutdown();
    
    // Simple iteration mechanism
    inline Worker *WorkersBegin() {return Workers;};
    Worker *WorkerStep(Worker *I);
-   inline Item **ItemsBegin() {return Items.begin();};
-   inline Item **ItemsEnd() {return Items.end();};
+   inline ItemIterator ItemsBegin() {return Items.begin();};
+   inline ItemIterator ItemsEnd() {return Items.end();};
    
    // Iterate over queued Item URIs
    class UriIterator;
@@ -112,10 +115,10 @@ class pkgAcquire
    bool Clean(string Dir);
 
    // Returns the size of the total download set
-   unsigned long TotalNeeded();
-   unsigned long FetchNeeded();
-   unsigned long PartialPresent();
-   
+   double TotalNeeded();
+   double FetchNeeded();
+   double PartialPresent();
+
    pkgAcquire(pkgAcquireStatus *Log = 0);
    virtual ~pkgAcquire();
 };
@@ -132,8 +135,9 @@ struct pkgAcquire::ItemDesc
 // List of possible items queued for download.
 class pkgAcquire::Queue
 {
-   friend pkgAcquire;
-   friend pkgAcquire::UriIterator;
+   friend class pkgAcquire;
+   friend class pkgAcquire::UriIterator;
+   friend class pkgAcquire::Worker;
    Queue *Next;
    
    protected:
@@ -175,7 +179,7 @@ class pkgAcquire::Queue
    bool ItemDone(QItem *Itm);
    
    bool Startup();
-   bool Shutdown();
+   bool Shutdown(bool Final);
    bool Cycle();
    void Bump();
    
@@ -229,7 +233,9 @@ struct pkgAcquire::MethodConfig
    bool Pipeline;
    bool SendConfig;
    bool LocalOnly;
-      
+   bool NeedsCleanup;
+   bool Removable;
+   
    MethodConfig();
 };
 
@@ -239,11 +245,11 @@ class pkgAcquireStatus
    
    struct timeval Time;
    struct timeval StartTime;
-   unsigned long LastBytes;
+   double LastBytes;
    double CurrentCPS;
-   unsigned long CurrentBytes;
-   unsigned long TotalBytes;
-   unsigned long FetchedBytes;
+   double CurrentBytes;
+   double TotalBytes;
+   double FetchedBytes;
    unsigned long ElapsedTime;
    unsigned long TotalItems;
    unsigned long CurrentItems;
@@ -251,7 +257,8 @@ class pkgAcquireStatus
    public:
 
    bool Update;
-   
+   bool MorePulses;
+      
    // Called by items when they have finished a real download
    virtual void Fetched(unsigned long Size,unsigned long ResumePoint);
    
@@ -259,10 +266,10 @@ class pkgAcquireStatus
    virtual bool MediaChange(string Media,string Drive) = 0;
    
    // Each of these is called by the workers when an event occures
-   virtual void IMSHit(pkgAcquire::ItemDesc &Itm) {};
-   virtual void Fetch(pkgAcquire::ItemDesc &Itm) {};
-   virtual void Done(pkgAcquire::ItemDesc &Itm) {};
-   virtual void Fail(pkgAcquire::ItemDesc &Itm) {};
+   virtual void IMSHit(pkgAcquire::ItemDesc &/*Itm*/) {};
+   virtual void Fetch(pkgAcquire::ItemDesc &/*Itm*/) {};
+   virtual void Done(pkgAcquire::ItemDesc &/*Itm*/) {};
+   virtual void Fail(pkgAcquire::ItemDesc &/*Itm*/) {};
    virtual bool Pulse(pkgAcquire *Owner); // returns false on user cancel
    virtual void Start();
    virtual void Stop();