X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b2e465d6d32d2dc884f58b94acb7e35f671a87fe..3c54407f8783d5e27363eabf41dbc3d031526ffe:/apt-pkg/policy.h diff --git a/apt-pkg/policy.h b/apt-pkg/policy.h index f89916202..f8b2678de 100644 --- a/apt-pkg/policy.h +++ b/apt-pkg/policy.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: policy.h,v 1.2 2001/02/20 07:03:17 jgg Exp $ +// $Id: policy.h,v 1.4 2001/05/07 04:24:08 jgg Exp $ /* ###################################################################### Package Version Policy implementation @@ -33,16 +33,17 @@ #ifndef PKGLIB_POLICY_H #define PKGLIB_POLICY_H -#ifdef __GNUG__ -#pragma interface "apt-pkg/policy.h" -#endif #include #include #include +using std::vector; + class pkgPolicy : public pkgDepCache::Policy { + protected: + struct Pin { pkgVersionMatch::MatchType Type; @@ -56,8 +57,6 @@ class pkgPolicy : public pkgDepCache::Policy string Pkg; }; - protected: - Pin *Pins; signed short *PFPriority; vector Defaults; @@ -67,11 +66,17 @@ class pkgPolicy : public pkgDepCache::Policy public: + // Things for manipulating pins void CreatePin(pkgVersionMatch::MatchType Type,string Pkg, string Data,signed short Priority); - - virtual pkgCache::VerIterator GetCandidateVer(pkgCache::PkgIterator Pkg); - virtual bool IsImportantDep(pkgCache::DepIterator Dep) {return pkgDepCache::Policy::IsImportantDep(Dep);}; + inline signed short GetPriority(pkgCache::PkgFileIterator const &File) + {return PFPriority[File->ID];}; + signed short GetPriority(pkgCache::PkgIterator const &Pkg); + pkgCache::VerIterator GetMatch(pkgCache::PkgIterator const &Pkg); + + // Things for the cache interface. + virtual pkgCache::VerIterator GetCandidateVer(pkgCache::PkgIterator const &Pkg); + virtual bool IsImportantDep(pkgCache::DepIterator const &Dep) {return pkgDepCache::Policy::IsImportantDep(Dep);}; bool InitDefaults(); pkgPolicy(pkgCache *Owner); @@ -79,5 +84,6 @@ class pkgPolicy : public pkgDepCache::Policy }; bool ReadPinFile(pkgPolicy &Plcy,string File = ""); +bool ReadPinDir(pkgPolicy &Plcy,string Dir = ""); #endif