+ // State information for the retry mechanism
+ pkgCache::VerIterator Version;
+ pkgAcquire::ItemDesc Desc;
+ pkgSourceList *Sources;
+ pkgRecords *Recs;
+ string MD5;
+ string &StoreFilename;
+ pkgCache::VerFileIterator Vf;
+ unsigned int Retries;
+ bool Trusted;
+
+ // Queue the next available file for download.
+ bool QueueNext();
+
+ 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 MD5Sum() {return MD5;};
+ virtual string DescURI() {return Desc.URI;};
+ virtual string ShortDesc() {return Desc.ShortDesc;};
+ virtual void Finished();
+ virtual bool IsTrusted();
+
+ pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources,
+ pkgRecords *Recs,pkgCache::VerIterator const &Version,
+ string &StoreFilename);
+};
+
+// Fetch a generic file to the current directory
+class pkgAcqFile : public pkgAcquire::Item
+{
+ pkgAcquire::ItemDesc Desc;
+ string Md5Hash;
+ unsigned int Retries;
+
+ 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 MD5Sum() {return Md5Hash;};
+ virtual string DescURI() {return Desc.URI;};
+
+ // 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="");