+// Version File
+class pkgCache::VerFileIterator
+{
+ pkgCache *Owner;
+ VerFile *FileP;
+
+ public:
+
+ // Iteration
+ void operator ++(int) {if (FileP != Owner->VerFileP) FileP = Owner->VerFileP + FileP->NextFile;};
+ inline void operator ++() {operator ++(0);};
+ inline bool end() const {return FileP == Owner->VerFileP?true:false;};
+
+ // Comparison
+ inline bool operator ==(const VerFileIterator &B) const {return FileP == B.FileP;};
+ inline bool operator !=(const VerFileIterator &B) const {return FileP != B.FileP;};
+
+ // Accessors
+ inline VerFile *operator ->() {return FileP;};
+ inline VerFile const *operator ->() const {return FileP;};
+ inline VerFile const &operator *() const {return *FileP;};
+ inline operator VerFile *() {return FileP == Owner->VerFileP?0:FileP;};
+ inline operator VerFile const *() const {return FileP == Owner->VerFileP?0:FileP;};
+ inline pkgCache *Cache() {return Owner;};
+
+ inline PkgFileIterator File() const {return PkgFileIterator(*Owner,FileP->File + Owner->PkgFileP);};
+ inline unsigned long Index() const {return FileP - Owner->VerFileP;};
+
+ inline VerFileIterator() : Owner(0), FileP(0) {};
+ inline VerFileIterator(pkgCache &Owner,VerFile *Trg) : Owner(&Owner), FileP(Trg) {};
+};
+