// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire-item.h,v 1.12 1998/12/11 06:32:34 jgg Exp $
+// $Id: acquire-item.h,v 1.16 1999/02/01 02:22:11 jgg Exp $
/* ######################################################################
Acquire Item - Item to acquire
When an item is instantiated it will add it self to the local list in
the Owner Acquire class. Derived classes will then call QueueURI to
- register all the URI's they wish to fetch for at the initial moment.
+ 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.
A Archive class is provided for downloading .deb files. It does Md5
- checking and source location.
+ checking and source location as well as a retry algorithm.
##################################################################### */
/*}}}*/
{
protected:
+ // Some private helper methods for registering URIs
pkgAcquire *Owner;
inline void QueueURI(ItemDesc &Item)
{Owner->Enqueue(Item);};
+ inline void Dequeue() {Owner->Dequeue(this);};
+ // Safe rename function with timestamp preservation
void Rename(string From,string To);
public:
// File to write the fetch into
string DestFile;
-
- virtual void Failed(string Message);
+
+ // Action members invoked by the worker
+ virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
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();};
-
+
+ // Inquire functions
+ virtual string MD5Sum() {return string();};
+ virtual string Describe() = 0;
+
Item(pkgAcquire *Owner);
virtual ~Item();
};
public:
+ // Specialized action members
virtual void Done(string Message,unsigned long Size,string Md5Hash);
virtual string Custom600Headers();
virtual string Describe();
public:
+ // Specialized action members
+ virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
virtual void Done(string Message,unsigned long Size,string Md5Hash);
virtual string Custom600Headers();
virtual string Describe();
{
protected:
+ // State information for the retry mechanism
pkgCache::VerIterator Version;
pkgAcquire::ItemDesc Desc;
pkgSourceList *Sources;
string MD5;
string &StoreFilename;
pkgCache::VerFileIterator Vf;
-
+ unsigned int Retries;
+
+ // Queue the next available file for download.
bool QueueNext();
public:
- virtual void Failed(string Message);
+ // Specialized action members
+ virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
virtual void Done(string Message,unsigned long Size,string Md5Hash);
virtual string Describe();
+ virtual string MD5Sum() {return MD5;};
pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources,
pkgRecords *Recs,pkgCache::VerIterator const &Version,