]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire.h
Fail over
[apt.git] / apt-pkg / acquire.h
index 0d8803c1d708eb999a85664e84a72a816869d395..d6339e74db0e1b25adb7c1b4973a2bd79b4832bf 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire.h,v 1.9 1998/11/09 01:09:26 jgg Exp $
+// $Id: acquire.h,v 1.17 1998/12/11 06:01:27 jgg Exp $
 /* ######################################################################
 
    Acquire - File Acquiration
@@ -39,6 +39,7 @@
 #pragma interface "apt-pkg/acquire.h"
 #endif 
 
+#include <sys/time.h>
 #include <unistd.h>
 
 class pkgAcquireStatus;
@@ -78,7 +79,7 @@ class pkgAcquire
    
    void Enqueue(ItemDesc &Item);
    void Dequeue(Item *Item);
-   string QueueName(string URI);
+   string QueueName(string URI,MethodConfig const *&Config);
 
    // FDSET managers for derived classes
    void SetFds(int &Fd,fd_set *RSet,fd_set *WSet);
@@ -97,6 +98,13 @@ class pkgAcquire
    Worker *WorkerStep(Worker *I);
    inline Item **ItemsBegin() {return Items.begin();};
    inline Item **ItemsEnd() {return Items.end();};
+
+   // Cleans out the download dir
+   bool Clean(string Dir);
+
+   // Returns the size of the total download set
+   unsigned long TotalNeeded();
+   unsigned long FetchNeeded();
    
    pkgAcquire(pkgAcquireStatus *Log = 0);
    ~pkgAcquire();
@@ -141,6 +149,8 @@ class pkgAcquire::Queue
    QItem *Items;
    pkgAcquire::Worker *Workers;
    pkgAcquire *Owner;
+   unsigned long PipeDepth;
+   unsigned long MaxPipeDepth;
    
    public:
    
@@ -171,27 +181,48 @@ struct pkgAcquire::MethodConfig
 
    string Version;
    bool SingleInstance;
-   bool PreScan;
    bool Pipeline;
    bool SendConfig;
-   
+   bool LocalOnly;
+      
    MethodConfig();
 };
 
 class pkgAcquireStatus
 {
+   protected:
+   
+   struct timeval Time;
+   struct timeval StartTime;
+   unsigned long LastBytes;
+   double CurrentCPS;
+   unsigned long CurrentBytes;
+   unsigned long TotalBytes;
+   unsigned long FetchedBytes;
+   unsigned long ElapsedTime;
+   unsigned long TotalItems;
+   unsigned long CurrentItems;
+   
    public:
 
    bool Update;
    
+   // Called by items when they have finished a real download
+   virtual void Fetched(unsigned long Size,unsigned long ResumePoint);
+   
+   // Called to change media
+   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 Pulse(pkgAcquire *Owner) {};
+   virtual void Fail(pkgAcquire::ItemDesc &Itm) {};
+   virtual void Pulse(pkgAcquire *Owner);
+   virtual void Start();
+   virtual void Stop();
    
-   pkgAcquireStatus() : Update(false) {};
+   pkgAcquireStatus();
    virtual ~pkgAcquireStatus() {};
 };