// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cacheiterators.h,v 1.5 1998/07/12 01:26:00 jgg Exp $
+// $Id: cacheiterators.h,v 1.13 1999/02/23 06:46:24 jgg Exp $
/* ######################################################################
Cache Iterators - Iterators for navigating the cache structure
that has the depends pointer as a member. The provide iterator has the
same system.
- This header is not user includable, please use pkglib/pkgcache.h
+ This header is not user includable, please use apt-pkg/pkgcache.h
##################################################################### */
/*}}}*/
#define PKGLIB_CACHEITERATORS_H
#ifdef __GNUG__
-#pragma interface "pkglib/cacheiterators.h"
+#pragma interface "apt-pkg/cacheiterators.h"
#endif
// Package Iterator
class pkgCache::VerIterator
{
Version *Ver;
- pkgCache &Owner;
+ pkgCache *Owner;
void _dummy();
public:
// Iteration
- void operator ++(int) {if (Ver != Owner.VerP) Ver = Owner.VerP + Ver->NextVer;};
+ void operator ++(int) {if (Ver != Owner->VerP) Ver = Owner->VerP + Ver->NextVer;};
inline void operator ++() {operator ++(0);};
- inline bool end() const {return Ver == Owner.VerP?true:false;};
- inline void operator =(const VerIterator &B) {Ver = B.Ver;};
+ inline bool end() const {return Ver == Owner->VerP?true:false;};
+ inline void operator =(const VerIterator &B) {Ver = B.Ver; Owner = B.Owner;};
// Comparison
inline bool operator ==(const VerIterator &B) const {return Ver == B.Ver;};
inline Version const *operator ->() const {return Ver;};
inline Version &operator *() {return *Ver;};
inline Version const &operator *() const {return *Ver;};
- inline operator Version *() {return Ver == Owner.VerP?0:Ver;};
- inline operator Version const *() const {return Ver == Owner.VerP?0:Ver;};
-
- inline const char *VerStr() const {return Ver->VerStr == 0?0:Owner.StrP + Ver->VerStr;};
- inline const char *Section() const {return Ver->Section == 0?0:Owner.StrP + Ver->Section;};
- inline PkgIterator ParentPkg() const {return PkgIterator(Owner,Owner.PkgP + Ver->ParentPkg);};
+ inline operator Version *() {return Ver == Owner->VerP?0:Ver;};
+ inline operator Version const *() const {return Ver == Owner->VerP?0:Ver;};
+
+ inline const char *VerStr() const {return Ver->VerStr == 0?0:Owner->StrP + Ver->VerStr;};
+ inline const char *Section() const {return Ver->Section == 0?0:Owner->StrP + Ver->Section;};
+ inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;};
+ inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);};
inline DepIterator DependsList() const;
inline PrvIterator ProvidesList() const;
inline VerFileIterator FileList() const;
- inline unsigned long Index() const {return Ver - Owner.VerP;};
+ inline unsigned long Index() const {return Ver - Owner->VerP;};
bool Downloadable() const;
+ const char *PriorityType();
+
+ bool Automatic() const;
+ VerFileIterator NewestFile() const;
- inline VerIterator(pkgCache &Owner,Version *Trg = 0) : Ver(Trg), Owner(Owner)
+ inline VerIterator() : Ver(0), Owner(0) {};
+ inline VerIterator(pkgCache &Owner,Version *Trg = 0) : Ver(Trg),
+ Owner(&Owner)
{
if (Ver == 0)
Ver = Owner.VerP;
inline bool Reverse() {return Type == DepRev;};
inline unsigned long Index() const {return Dep - Owner->DepP;};
bool IsCritical();
+ void GlobOr(DepIterator &Start,DepIterator &End);
Version **AllTargets();
bool SmartTargetPkg(PkgIterator &Result);
-
+ const char *CompType();
+ const char *DepType();
+
inline DepIterator(pkgCache &Owner,Dependency *Trg,Version * = 0) :
Dep(Trg), Type(DepVer), Owner(&Owner)
{
inline operator PackageFile const *() const {return File == Owner->PkgFileP?0:File;};
inline const char *FileName() const {return File->FileName == 0?0:Owner->StrP + File->FileName;};
+ inline const char *Archive() const {return File->Archive == 0?0:Owner->StrP + File->Archive;};
+ inline const char *Component() const {return File->Component == 0?0:Owner->StrP + File->Component;};
inline const char *Version() const {return File->Version == 0?0:Owner->StrP + File->Version;};
- inline const char *Distribution() const {return File->Distribution == 0?0:Owner->StrP + File->Distribution;};
+ inline const char *Origin() const {return File->Origin == 0?0:Owner->StrP + File->Origin;};
+ inline const char *Label() const {return File->Origin == 0?0:Owner->StrP + File->Label;};
+ inline const char *Architecture() const {return File->Origin == 0?0:Owner->StrP + File->Architecture;};
+
inline unsigned long Index() const {return File - Owner->PkgFileP;};
bool IsOk();
inline pkgCache::PrvIterator pkgCache::PkgIterator::ProvidesList() const
{return PrvIterator(*Owner,Owner->ProvideP + Pkg->ProvidesList,Pkg);};
inline pkgCache::PrvIterator pkgCache::VerIterator::ProvidesList() const
- {return PrvIterator(Owner,Owner.ProvideP + Ver->ProvidesList,Ver);};
+ {return PrvIterator(*Owner,Owner->ProvideP + Ver->ProvidesList,Ver);};
inline pkgCache::DepIterator pkgCache::VerIterator::DependsList() const
- {return DepIterator(Owner,Owner.DepP + Ver->DependsList,Ver);};
+ {return DepIterator(*Owner,Owner->DepP + Ver->DependsList,Ver);};
inline pkgCache::VerFileIterator pkgCache::VerIterator::FileList() const
- {return VerFileIterator(Owner,Owner.VerFileP + Ver->FileList);};
+ {return VerFileIterator(*Owner,Owner->VerFileP + Ver->FileList);};
#endif