Test acquire failover
[ntk/apt.git] / apt-pkg / acquire-item.h
index d50efc0..4a2a4e3 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire-item.h,v 1.6 1998/11/09 01:09:21 jgg Exp $
+// $Id: acquire-item.h,v 1.11 1998/12/11 06:01:25 jgg Exp $
 /* ######################################################################
 
    Acquire Item - Item to acquire
@@ -12,6 +12,9 @@
    Two item classes are provided to provide functionality for downloading
    of Index files and downloading of Packages.
    
+   A Archive class is provided for downloading .deb files. It does Md5
+   checking and source location.
+   
    ##################################################################### */
                                                                        /*}}}*/
 #ifndef PKGLIB_ACQUIRE_ITEM_H
@@ -19,6 +22,7 @@
 
 #include <apt-pkg/acquire.h>
 #include <apt-pkg/sourcelist.h>
+#include <apt-pkg/pkgrecords.h>
 
 #ifdef __GNUG__
 #pragma interface "apt-pkg/acquire-item.h"
@@ -41,8 +45,11 @@ class pkgAcquire::Item
    enum {StatIdle, StatFetching, StatDone, StatError} Status;
    string ErrorText;
    unsigned long FileSize;
+   char *Mode;
+   unsigned long ID;
    bool Complete;
-   
+   bool Local;
+
    // Number of queues we are inserted into
    unsigned int QueueCounter;
    
@@ -52,7 +59,8 @@ class pkgAcquire::Item
    virtual void Failed(string Message);
    virtual void Done(string Message,unsigned long Size,string Md5Hash);
    virtual void Start(string Message,unsigned long Size);
-
+   virtual string Describe() = 0;
+   
    virtual string Custom600Headers() {return string();};
       
    Item(pkgAcquire *Owner);
@@ -73,6 +81,7 @@ class pkgAcqIndex : public pkgAcquire::Item
    
    virtual void Done(string Message,unsigned long Size,string Md5Hash);   
    virtual string Custom600Headers();
+   virtual string Describe();
 
    pkgAcqIndex(pkgAcquire *Owner,const pkgSourceList::Item *Location);
 };
@@ -89,8 +98,34 @@ class pkgAcqIndexRel : public pkgAcquire::Item
    
    virtual void Done(string Message,unsigned long Size,string Md5Hash);   
    virtual string Custom600Headers();
+   virtual string Describe();
    
    pkgAcqIndexRel(pkgAcquire *Owner,const pkgSourceList::Item *Location);
 };
 
+// Item class for archive files
+class pkgAcqArchive : public pkgAcquire::Item
+{
+   protected:
+   
+   pkgCache::VerIterator Version;
+   pkgAcquire::ItemDesc Desc;
+   pkgSourceList *Sources;
+   pkgRecords *Recs;
+   string MD5;
+   string &StoreFilename;
+   pkgCache::VerFileIterator Vf;
+   
+   bool QueueNext();
+   
+   public:
+   
+   virtual void Done(string Message,unsigned long Size,string Md5Hash);
+   virtual string Describe();
+   
+   pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources,
+                pkgRecords *Recs,pkgCache::VerIterator const &Version,
+                string &StoreFilename);
+};
+
 #endif