]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/pkgcache.h
Added a APT::Immediate-Configure-All option to enable imediate configuration for...
[apt.git] / apt-pkg / pkgcache.h
index a2e63ff0392fa17f63399a7135c56c297930af4c..1b174372481f0a1a7a43a4ce1fb24c3f7a4d29de 100644 (file)
@@ -146,7 +146,7 @@ class pkgCache                                                              /*{{{*/
    struct Flag
    {
       enum PkgFlags {Auto=(1<<0),Essential=(1<<3),Important=(1<<4)};
    struct Flag
    {
       enum PkgFlags {Auto=(1<<0),Essential=(1<<3),Important=(1<<4)};
-      enum PkgFFlags {NotSource=(1<<0),NotAutomatic=(1<<1)};
+      enum PkgFFlags {NotSource=(1<<0),NotAutomatic=(1<<1),ButAutomaticUpgrades=(1<<2)};
    };
    
    protected:
    };
    
    protected:
@@ -174,7 +174,7 @@ class pkgCache                                                              /*{{{*/
    StringItem *StringItemP;
    char *StrP;
 
    StringItem *StringItemP;
    char *StrP;
 
-   virtual bool ReMap();
+   virtual bool ReMap(bool const &Errorchecks = true);
    inline bool Sync() {return Map.Sync();};
    inline MMap &GetMap() {return Map;};
    inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();};
    inline bool Sync() {return Map.Sync();};
    inline MMap &GetMap() {return Map;};
    inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();};
@@ -215,6 +215,7 @@ class pkgCache                                                              /*{{{*/
 private:
    bool MultiArchEnabled;
    PkgIterator SingleArchFindPkg(const string &Name);
 private:
    bool MultiArchEnabled;
    PkgIterator SingleArchFindPkg(const string &Name);
+   inline char const * const NativeArch() const;
 };
                                                                        /*}}}*/
 // Header structure                                                    /*{{{*/
 };
                                                                        /*}}}*/
 // Header structure                                                    /*{{{*/
@@ -244,6 +245,7 @@ struct pkgCache::Header
        If any of the size values do not exactly match what the client expects
        then the client should refuse the load the file. */
    unsigned short HeaderSz;
        If any of the size values do not exactly match what the client expects
        then the client should refuse the load the file. */
    unsigned short HeaderSz;
+   unsigned short GroupSz;
    unsigned short PackageSz;
    unsigned short PackageFileSz;
    unsigned short VersionSz;
    unsigned short PackageSz;
    unsigned short PackageFileSz;
    unsigned short VersionSz;
@@ -329,12 +331,15 @@ struct pkgCache::Group
    map_ptrloc Name;            // StringItem
 
    // Linked List
    map_ptrloc Name;            // StringItem
 
    // Linked List
-   /** Link to the first package which belongs to the group */
+   /** \brief Link to the first package which belongs to the group */
    map_ptrloc FirstPackage;    // Package
    map_ptrloc FirstPackage;    // Package
-   /** Link to the last package which belongs to the group */
+   /** \brief Link to the last package which belongs to the group */
    map_ptrloc LastPackage;     // Package
    map_ptrloc LastPackage;     // Package
-   /** Link to the next Group */
+   /** \brief Link to the next Group */
    map_ptrloc Next;            // Group
    map_ptrloc Next;            // Group
+   /** \brief unique sequel ID */
+   unsigned int ID;
+
 };
                                                                        /*}}}*/
 // Package structure                                                   /*{{{*/
 };
                                                                        /*}}}*/
 // Package structure                                                   /*{{{*/
@@ -501,9 +506,9 @@ struct pkgCache::Version
        Foreign means that this version can fulfill dependencies even
        if it is built for another architecture as the requester.
        Same indicates that builds for different architectures can
        Foreign means that this version can fulfill dependencies even
        if it is built for another architecture as the requester.
        Same indicates that builds for different architectures can
-       be co-installed on the system and All is the marker for a
-       version with the Architecture: all. */
-   enum {None, All, Foreign, Same, Allowed} MultiArch;
+       be co-installed on the system */
+   /* FIXME: A bitflag would be better with the next abibreak… */
+   enum {None, All, Foreign, Same, Allowed, AllForeign, AllAllowed} MultiArch;
 
    /** \brief references all the PackageFile's that this version came from
 
 
    /** \brief references all the PackageFile's that this version came from
 
@@ -528,9 +533,9 @@ struct pkgCache::Version
    /** \brief archive size for this version
 
        For Debian this is the size of the .deb file. */
    /** \brief archive size for this version
 
        For Debian this is the size of the .deb file. */
-   map_ptrloc Size;              // These are the .deb size
+   unsigned long long Size;      // These are the .deb size
    /** \brief uncompressed size for this version */
    /** \brief uncompressed size for this version */
-   map_ptrloc InstalledSize;
+   unsigned long long InstalledSize;
    /** \brief characteristic value representing this version
 
        No two packages in existence should have the same VerStr
    /** \brief characteristic value representing this version
 
        No two packages in existence should have the same VerStr
@@ -645,6 +650,11 @@ struct pkgCache::StringItem
    map_ptrloc NextItem;      // StringItem
 };
                                                                        /*}}}*/
    map_ptrloc NextItem;      // StringItem
 };
                                                                        /*}}}*/
+
+
+inline char const * const pkgCache::NativeArch() const
+       { return StrP + HeaderP->Architecture; };
+
 #include <apt-pkg/cacheiterators.h>
 
 inline pkgCache::GrpIterator pkgCache::GrpBegin() 
 #include <apt-pkg/cacheiterators.h>
 
 inline pkgCache::GrpIterator pkgCache::GrpBegin()