diff options
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/acquire-item.h | 4 | ||||
-rw-r--r-- | apt-pkg/acquire.cc | 18 | ||||
-rw-r--r-- | apt-pkg/acquire.h | 44 |
3 files changed, 62 insertions, 4 deletions
diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 0b80ca1de..676766dbc 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -1,6 +1,6 @@ // -*- 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.13 1999/01/30 06:07:24 jgg Exp $ /* ###################################################################### Acquire Item - Item to acquire @@ -59,6 +59,7 @@ class pkgAcquire::Item virtual void Failed(string Message); virtual void Done(string Message,unsigned long Size,string Md5Hash); virtual void Start(string Message,unsigned long Size); + virtual string MD5Sum() {return string();}; virtual string Describe() = 0; virtual string Custom600Headers() {return string();}; @@ -121,6 +122,7 @@ class pkgAcqArchive : public pkgAcquire::Item public: virtual void Failed(string Message); + virtual string MD5Sum() {return MD5;}; virtual void Done(string Message,unsigned long Size,string Md5Hash); virtual string Describe(); diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 125622e66..8b1f522f9 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire.cc,v 1.24 1999/01/27 02:48:52 jgg Exp $ +// $Id: acquire.cc,v 1.25 1999/01/30 06:07:24 jgg Exp $ /* ###################################################################### Acquire - File Acquiration @@ -413,6 +413,22 @@ unsigned long pkgAcquire::FetchNeeded() return Total; } /*}}}*/ +// pkgAcquire::UriBegin - Start iterator for the uri list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::UriIterator pkgAcquire::UriBegin() +{ + return UriIterator(Queues); +} + /*}}}*/ +// pkgAcquire::UriEnd - End iterator for the uri list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +pkgAcquire::UriIterator pkgAcquire::UriEnd() +{ + return UriIterator(0); +} + /*}}}*/ // Acquire::MethodConfig::MethodConfig - Constructor /*{{{*/ // --------------------------------------------------------------------- diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index 2f5da7b31..5693615dd 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire.h,v 1.18 1998/12/11 07:20:33 jgg Exp $ +// $Id: acquire.h,v 1.19 1999/01/30 06:07:24 jgg Exp $ /* ###################################################################### Acquire - File Acquiration @@ -98,7 +98,12 @@ class pkgAcquire Worker *WorkerStep(Worker *I); inline Item **ItemsBegin() {return Items.begin();}; inline Item **ItemsEnd() {return Items.end();}; - + + // Iterate over queued Item URIs + class UriIterator; + UriIterator UriBegin(); + UriIterator UriEnd(); + // Cleans out the download dir bool Clean(string Dir); @@ -123,6 +128,7 @@ struct pkgAcquire::ItemDesc class pkgAcquire::Queue { friend pkgAcquire; + friend pkgAcquire::UriIterator; Queue *Next; protected: @@ -172,6 +178,40 @@ class pkgAcquire::Queue ~Queue(); }; +class pkgAcquire::UriIterator +{ + pkgAcquire::Queue *CurQ; + pkgAcquire::Queue::QItem *CurItem; + + public: + + // Advance to the next item + inline void operator ++() {operator ++();}; + void operator ++(int) + { + CurItem = CurItem->Next; + while (CurItem == 0 && CurQ != 0) + { + CurItem = CurQ->Items; + CurQ = CurQ->Next; + } + }; + + // Accessors + inline pkgAcquire::ItemDesc const *operator ->() const {return CurItem;}; + inline bool operator !=(UriIterator const &rhs) const {return rhs.CurQ != CurQ || rhs.CurItem != CurItem;}; + inline bool operator ==(UriIterator const &rhs) const {return rhs.CurQ == CurQ && rhs.CurItem == CurItem;}; + + UriIterator(pkgAcquire::Queue *Q) : CurQ(Q), CurItem(0) + { + while (CurItem == 0 && CurQ != 0) + { + CurItem = CurQ->Items; + CurQ = CurQ->Next; + } + } +}; + // Configuration information from each method struct pkgAcquire::MethodConfig { |