]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/pkgcache.h
merged the relevant bits from lp:~mvo/apt/lp346386
[apt.git] / apt-pkg / pkgcache.h
index 280f37bca7101bc8504bec125bc3a268b33548dc..1a7013551a5c9c57ae7a7733277e076042ba017e 100644 (file)
 #ifndef PKGLIB_PKGCACHE_H
 #define PKGLIB_PKGCACHE_H
 
 #ifndef PKGLIB_PKGCACHE_H
 #define PKGLIB_PKGCACHE_H
 
-
 #include <string>
 #include <time.h>
 #include <apt-pkg/mmap.h>
 
 #include <string>
 #include <time.h>
 #include <apt-pkg/mmap.h>
 
+#ifndef APT_8_CLEANER_HEADERS
 using std::string;
 using std::string;
-    
+#endif
+
 class pkgVersioningSystem;
 class pkgCache                                                         /*{{{*/
 {
 class pkgVersioningSystem;
 class pkgCache                                                         /*{{{*/
 {
@@ -152,10 +153,10 @@ class pkgCache                                                            /*{{{*/
    protected:
    
    // Memory mapped cache file
    protected:
    
    // Memory mapped cache file
-   string CacheFile;
+   std::string CacheFile;
    MMap &Map;
 
    MMap &Map;
 
-   unsigned long sHash(const string &S) const;
+   unsigned long sHash(const std::string &S) const;
    unsigned long sHash(const char *S) const;
    
    public:
    unsigned long sHash(const char *S) const;
    
    public:
@@ -180,16 +181,16 @@ class pkgCache                                                            /*{{{*/
    inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();};
       
    // String hashing function (512 range)
    inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();};
       
    // String hashing function (512 range)
-   inline unsigned long Hash(const string &S) const {return sHash(S);};
+   inline unsigned long Hash(const std::string &S) const {return sHash(S);};
    inline unsigned long Hash(const char *S) const {return sHash(S);};
 
    // Useful transformation things
    const char *Priority(unsigned char Priority);
    
    // Accessors
    inline unsigned long Hash(const char *S) const {return sHash(S);};
 
    // Useful transformation things
    const char *Priority(unsigned char Priority);
    
    // Accessors
-   GrpIterator FindGrp(const string &Name);
-   PkgIterator FindPkg(const string &Name);
-   PkgIterator FindPkg(const string &Name, const string &Arch);
+   GrpIterator FindGrp(const std::string &Name);
+   PkgIterator FindPkg(const std::string &Name);
+   PkgIterator FindPkg(const std::string &Name, const std::string &Arch);
 
    Header &Head() {return *HeaderP;};
    inline GrpIterator GrpBegin();
 
    Header &Head() {return *HeaderP;};
    inline GrpIterator GrpBegin();
@@ -200,6 +201,7 @@ class pkgCache                                                              /*{{{*/
    inline PkgFileIterator FileEnd();
 
    inline bool MultiArchCache() const { return MultiArchEnabled; };
    inline PkgFileIterator FileEnd();
 
    inline bool MultiArchCache() const { return MultiArchEnabled; };
+   inline char const * const NativeArch() const;
 
    // Make me a function
    pkgVersioningSystem *VS;
 
    // Make me a function
    pkgVersioningSystem *VS;
@@ -214,8 +216,7 @@ class pkgCache                                                              /*{{{*/
 
 private:
    bool MultiArchEnabled;
 
 private:
    bool MultiArchEnabled;
-   PkgIterator SingleArchFindPkg(const string &Name);
-   inline char const * const NativeArch() const;
+   PkgIterator SingleArchFindPkg(const std::string &Name);
 };
                                                                        /*}}}*/
 // Header structure                                                    /*{{{*/
 };
                                                                        /*}}}*/
 // Header structure                                                    /*{{{*/
@@ -314,6 +315,9 @@ struct pkgCache::Header
    map_ptrloc PkgHashTable[2*1048];
    map_ptrloc GrpHashTable[2*1048];
 
    map_ptrloc PkgHashTable[2*1048];
    map_ptrloc GrpHashTable[2*1048];
 
+   /** \brief Size of the complete cache file */
+   unsigned long  CacheFileSize;
+
    bool CheckSizes(Header &Against) const;
    Header();
 };
    bool CheckSizes(Header &Against) const;
    Header();
 };
@@ -506,7 +510,9 @@ struct pkgCache::Version
                       All = (1<<0), /*!< will cause that Ver.Arch() will report "all" */
                       Foreign = (1<<1), /*!< can satisfy dependencies in another architecture */
                       Same = (1<<2), /*!< can be co-installed with itself from other architectures */
                       All = (1<<0), /*!< will cause that Ver.Arch() will report "all" */
                       Foreign = (1<<1), /*!< can satisfy dependencies in another architecture */
                       Same = (1<<2), /*!< can be co-installed with itself from other architectures */
-                      Allowed = (1<<3) /*!< other packages are allowed to depend on thispkg:any */ };
+                      Allowed = (1<<3), /*!< other packages are allowed to depend on thispkg:any */
+                      AllForeign = All | Foreign,
+                      AllAllowed = All | Allowed };
    /** \brief stores the MultiArch capabilities of this version
 
        Flags used are defined in pkgCache::Version::VerMultiArch
    /** \brief stores the MultiArch capabilities of this version
 
        Flags used are defined in pkgCache::Version::VerMultiArch