]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-item.h
* merged apt--no-pragma
[apt.git] / apt-pkg / acquire-item.h
index e6fc7fc47b7df7ad79da7acd8a4d07e5d58d92f5..1885f7beb087150394aa4c983c2ddf5e9aa9dd6a 100644 (file)
@@ -9,8 +9,8 @@
    the Owner Acquire class. Derived classes will then call QueueURI to 
    register all the URI's they wish to fetch at the initial moment.   
    
-   Two item classes are provided to provide functionality for downloading
-   of Index files and downloading of Packages.
+   Three item classes are provided to provide functionality for
+   downloading of Index, Translation and Packages files.
    
    A Archive class is provided for downloading .deb files. It does Md5
    checking and source location as well as a retry algorithm.
@@ -27,9 +27,6 @@
 #include <apt-pkg/pkgrecords.h>
 #include <apt-pkg/indexrecords.h>
 
-#ifdef __GNUG__
-#pragma interface "apt-pkg/acquire-item.h"
-#endif 
 
 // Item to acquire
 class pkgAcquire::Item
@@ -48,7 +45,8 @@ class pkgAcquire::Item
    public:
 
    // State of the item
-   enum {StatIdle, StatFetching, StatDone, StatError, StatAuthError} Status;
+   enum {StatIdle, StatFetching, StatDone, StatError, 
+        StatAuthError, StatTransientNetworkError} Status;
    string ErrorText;
    unsigned long FileSize;
    unsigned long PartialSize;   
@@ -56,6 +54,7 @@ class pkgAcquire::Item
    unsigned long ID;
    bool Complete;
    bool Local;
+   string UsedMirror;
 
    // Number of queues we are inserted into
    unsigned int QueueCounter;
@@ -78,6 +77,9 @@ class pkgAcquire::Item
    pkgAcquire *GetOwner() {return Owner;};
    virtual bool IsTrusted() {return false;};
    
+   // report mirror problems
+   void ReportMirrorFailure(string FailCode);
+
    Item(pkgAcquire *Owner);
    virtual ~Item();
 };
@@ -107,6 +109,16 @@ class pkgAcqIndex : public pkgAcquire::Item
               string ShortDesct, string ExpectedMD5, string compressExt="");
 };
 
+// Item class for translated package index files
+class pkgAcqIndexTrans : public pkgAcqIndex
+{
+   public:
+  
+   virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
+   pkgAcqIndexTrans(pkgAcquire *Owner,string URI,string URIDesc,
+                   string ShortDesct);
+};
+
 struct IndexTarget
 {
    string URI;
@@ -151,9 +163,10 @@ class pkgAcqMetaIndex : public pkgAcquire::Item
    const vector<struct IndexTarget*>* IndexTargets;
    indexRecords* MetaIndexParser;
    bool AuthPass;
-   bool IMSHit; // required to fail gracefully on failures
+   // required to deal gracefully with problems caused by incorrect ims hits
+   bool IMSHit; 
 
-   bool VerifyVendor();
+   bool VerifyVendor(string Message);
    void RetrievalDone(string Message);
    void AuthDone(string Message);
    void QueueIndexes(bool verify);