diff options
Diffstat (limited to 'apt-pkg/acquire-item.h')
-rw-r--r-- | apt-pkg/acquire-item.h | 93 |
1 files changed, 13 insertions, 80 deletions
diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 34fcc2a76..da1bea801 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -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 |