]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/cacheiterators.h
do not do the same looping twice
[apt.git] / apt-pkg / cacheiterators.h
index d5e018be9505960ffa53a897d297d166245ac029..ea6a4afba72b0eeb801deac9a4ba21c6d6badd32 100644 (file)
@@ -46,7 +46,7 @@ template<typename Str, typename Itr> class pkgCache::Iterator :
         *  The implementation of this method should be pretty short
         *  as it will only return the Pointer into the mmap stored
         *  in the owner but the name of this pointer is different for
-        *  each stucture and we want to abstract here at least for the
+        *  each structure and we want to abstract here at least for the
         *  basic methods from the actual structure.
         *  \return Pointer to the first structure of this type
         */
@@ -198,7 +198,7 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> {
        /** \brief compares two version and returns if they are similar
 
            This method should be used to identify if two pseudo versions are
-           refering to the same "real" version */
+           referring to the same "real" version */
        inline bool SimilarVer(const VerIterator &B) const {
                return (B.end() == false && S->Hash == B->Hash && strcmp(VerStr(), B.VerStr()) == 0);
        };
@@ -220,6 +220,7 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> {
        inline VerFileIterator FileList() const;
        bool Downloadable() const;
        inline const char *PriorityType() const {return Owner->Priority(S->Priority);};
+       const char *MultiArchType() const;
        std::string RelStr() const;
 
        bool Automatic() const;
@@ -285,6 +286,9 @@ class pkgCache::DepIterator : public Iterator<Dependency, DepIterator> {
        bool IsNegative() const;
        bool IsIgnorable(PrvIterator const &Prv) const;
        bool IsIgnorable(PkgIterator const &Pkg) const;
+       bool IsMultiArchImplicit() const;
+       bool IsSatisfied(VerIterator const &Ver) const;
+       bool IsSatisfied(PrvIterator const &Prv) const;
        void GlobOr(DepIterator &Start,DepIterator &End);
        Version **AllTargets() const;
        bool SmartTargetPkg(PkgIterator &Result) const;
@@ -329,8 +333,9 @@ class pkgCache::PrvIterator : public Iterator<Provides, PrvIterator> {
        inline VerIterator OwnerVer() const {return VerIterator(*Owner,Owner->VerP + S->Version);};
        inline PkgIterator OwnerPkg() const {return PkgIterator(*Owner,Owner->PkgP + Owner->VerP[S->Version].ParentPkg);};
 
-       inline PrvIterator() : Iterator<Provides, PrvIterator>(), Type(PrvVer) {};
+       bool IsMultiArchImplicit() const;
 
+       inline PrvIterator() : Iterator<Provides, PrvIterator>(), Type(PrvVer) {};
        inline PrvIterator(pkgCache &Owner, Provides *Trg, Version*) :
                Iterator<Provides, PrvIterator>(Owner, Trg), Type(PrvVer) {
                if (S == 0)
@@ -414,7 +419,7 @@ class pkgCache::DescFileIterator : public Iterator<DescFile, DescFileIterator> {
        inline DescFileIterator(pkgCache &Owner,DescFile *Trg) : Iterator<DescFile, DescFileIterator>(Owner, Trg) {};
 };
                                                                        /*}}}*/
-// Inlined Begin functions cant be in the class because of order problems /*{{{*/
+// Inlined Begin functions can't be in the class because of order problems /*{{{*/
 inline pkgCache::PkgIterator pkgCache::GrpIterator::PackageList() const
        {return PkgIterator(*Owner,Owner->PkgP + S->FirstPackage);};
 inline pkgCache::VerIterator pkgCache::PkgIterator::VersionList() const