- map_ptrloc VerStr; // Stringtable
- map_ptrloc Section; // StringTable (StringItem)
- enum {None, All, Foreign, Same, Allowed} MultiArch;
-
- // Lists
- map_ptrloc FileList; // VerFile
- map_ptrloc NextVer; // Version
- map_ptrloc DescriptionList; // Description
- map_ptrloc DependsList; // Dependency
- map_ptrloc ParentPkg; // Package
- map_ptrloc ProvidesList; // Provides
-
- map_ptrloc Size; // These are the .deb size
- map_ptrloc InstalledSize;
+ /** \brief complete version string */
+ map_stringitem_t VerStr;
+ /** \brief section this version is filled in */
+ map_stringitem_t Section;
+
+ /** \brief Multi-Arch capabilities of a package version */
+ enum VerMultiArch { None = 0, /*!< is the default and doesn't trigger special behaviour */
+ 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 */
+ AllForeign = All | Foreign,
+ AllAllowed = All | Allowed };
+ /** \brief stores the MultiArch capabilities of this version
+
+ Flags used are defined in pkgCache::Version::VerMultiArch
+ */
+ unsigned char MultiArch;
+
+ /** \brief references all the PackageFile's that this version came from
+
+ FileList can be used to determine what distribution(s) the Version
+ applies to. If FileList is 0 then this is a blank version.
+ The structure should also have a 0 in all other fields excluding
+ pkgCache::Version::VerStr and Possibly pkgCache::Version::NextVer. */
+ map_pointer_t FileList; // VerFile
+ /** \brief next (lower or equal) version in the linked list */
+ map_pointer_t NextVer; // Version
+ /** \brief next description in the linked list */
+ map_pointer_t DescriptionList; // Description
+ /** \brief base of the dependency list */
+ map_pointer_t DependsList; // Dependency
+ /** \brief links to the owning package
+
+ This allows reverse dependencies to determine the package */
+ map_pointer_t ParentPkg; // Package
+ /** \brief list of pkgCache::Provides */
+ map_pointer_t ProvidesList; // Provides
+
+ /** \brief archive size for this version
+
+ For Debian this is the size of the .deb file. */
+ uint64_t Size; // These are the .deb size
+ /** \brief uncompressed size for this version */
+ uint64_t InstalledSize;
+ /** \brief characteristic value representing this version
+
+ No two packages in existence should have the same VerStr
+ and Hash with different contents. */