]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-item.h
* merged with mainline
[apt.git] / apt-pkg / acquire-item.h
index 34fcc2a768278f64e6e2145efc868335b0e6daf9..da1bea801d7310557691a9d2470ffa2bf033466b 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.   
    
-   Three item classes are provided to provide functionality for
-   downloading of Index, Translation and Packages files.
+   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 as well as a retry algorithm.
@@ -82,70 +82,6 @@ class pkgAcquire::Item
    virtual ~Item();
 };
 
-// item for index diffs
-
-struct DiffInfo {
-   string file;
-   string sha1;
-   unsigned long size;
-};
-
-class pkgAcqDiffIndex : public pkgAcquire::Item
-{
- protected:
-   bool Debug;
-   pkgAcquire::ItemDesc Desc;
-   string RealURI;
-   string ExpectedMD5;
-   string CurrentPackagesFile;
-   string Description;
-
- public:
-   // Specialized action members
-   virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string Md5Hash,
-                    pkgAcquire::MethodConfig *Cnf);
-   virtual string DescURI() {return RealURI + "Index";};
-   virtual string Custom600Headers();
-
-   // helpers
-   bool ParseDiffIndex(string IndexDiffFile);
-   
-   pkgAcqDiffIndex(pkgAcquire *Owner,string URI,string URIDesc,
-                  string ShortDesct, string ExpectedMD5);
-};
-
-class pkgAcqIndexDiffs : public pkgAcquire::Item
-{
-   protected:
-   bool Debug;
-   pkgAcquire::ItemDesc Desc;
-   string RealURI;
-   string ExpectedMD5;
-
-   // this is the SHA-1 sum we expect after the patching
-   string Description;
-   vector<DiffInfo> available_patches;
-   enum {StateFetchIndex,StateFetchDiff,StateUnzipDiff,StateApplyDiff} State;
-
-   public:
-   
-   // Specialized action members
-   virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string Md5Hash,
-                    pkgAcquire::MethodConfig *Cnf);
-   virtual string DescURI() {return RealURI + "Index";};
-
-   // various helpers
-   bool QueueNextDiff();
-   bool ApplyDiff(string PatchFile);
-   void Finish(bool allDone=false);
-
-   pkgAcqIndexDiffs(pkgAcquire *Owner,string URI,string URIDesc,
-                   string ShortDesct, string ExpectedMD5,
-                   vector<DiffInfo> diffs=vector<DiffInfo>());
-};
-
 // Item class for index files
 class pkgAcqIndex : public pkgAcquire::Item
 {
@@ -171,16 +107,6 @@ 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;
@@ -225,8 +151,10 @@ class pkgAcqMetaIndex : public pkgAcquire::Item
    const vector<struct IndexTarget*>* IndexTargets;
    indexRecords* MetaIndexParser;
    bool AuthPass;
+   // 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);
@@ -298,9 +226,14 @@ class pkgAcqFile : public pkgAcquire::Item
                     pkgAcquire::MethodConfig *Cnf);
    virtual string MD5Sum() {return Md5Hash;};
    virtual string DescURI() {return Desc.URI;};
-   
-   pkgAcqFile(pkgAcquire *Owner,string URI,string MD5,unsigned long Size,
-                 string Desc,string ShortDesc);
+
+   // If DestFilename is empty, download to DestDir/<basename> if
+   // DestDir is non-empty, $CWD/<basename> otherwise.  If
+   // DestFilename is NOT empty, DestDir is ignored and DestFilename
+   // is the absolute name to which the file should be downloaded.
+   pkgAcqFile(pkgAcquire *Owner, string URI, string MD5, unsigned long Size,
+             string Desc, string ShortDesc,
+             const string &DestDir="", const string &DestFilename="");
 };
 
 #endif