X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/f7132d28980564b0dd75aff1e27f4b02407fa5cc..76fcbe5c97849dcbbe67434d08e0a22c02fedd51:/apt-pkg/pkgcache.h diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index 6a54ad5ba..38733713f 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -19,9 +19,6 @@ #ifndef PKGLIB_PKGCACHE_H #define PKGLIB_PKGCACHE_H -#ifdef __GNUG__ -#pragma interface "apt-pkg/pkgcache.h" -#endif #include #include @@ -30,7 +27,7 @@ using std::string; class pkgVersioningSystem; -class pkgCache +class pkgCache /*{{{*/ { public: // Cache element predeclarations @@ -66,10 +63,14 @@ class pkgCache class Namespace; // These are all the constants used in the cache structures + + // WARNING - if you change these lists you must also edit + // the stringification in pkgcache.cc and also consider whether + // the cache file will become incompatible. struct Dep { enum DepType {Depends=1,PreDepends=2,Suggests=3,Recommends=4, - Conflicts=5,Replaces=6,Obsoletes=7}; + Conflicts=5,Replaces=6,Obsoletes=7,DpkgBreaks=8,Enhances=9}; enum DepCompareOp {Or=0x10,NoOp=0,LessEq=0x1,GreaterEq=0x2,Less=0x3, Greater=0x4,Equals=0x5,NotEquals=0x6}; }; @@ -80,7 +81,8 @@ class pkgCache enum PkgSelectedState {Unknown=0,Install=1,Hold=2,DeInstall=3,Purge=4}; enum PkgInstState {Ok=0,ReInstReq=1,HoldInst=2,HoldReInstReq=3}; enum PkgCurrentState {NotInstalled=0,UnPacked=1,HalfConfigured=2, - HalfInstalled=4,ConfigFiles=5,Installed=6}; + HalfInstalled=4,ConfigFiles=5,Installed=6, + TriggersAwaited=7,TriggersPending=8}; }; struct Flag @@ -95,7 +97,7 @@ class pkgCache string CacheFile; MMap ⤅ - unsigned long sHash(string S) const; + unsigned long sHash(const string &S) const; unsigned long sHash(const char *S) const; public: @@ -119,14 +121,14 @@ class pkgCache inline void *DataEnd() {return ((unsigned char *)Map.Data()) + Map.Size();}; // String hashing function (512 range) - inline unsigned long Hash(string S) const {return sHash(S);}; + inline unsigned long Hash(const string &S) const {return sHash(S);}; inline unsigned long Hash(const char *S) const {return sHash(S);}; // Usefull transformation things const char *Priority(unsigned char Priority); // Accessors - PkgIterator FindPkg(string Name); + PkgIterator FindPkg(const string &Name); Header &Head() {return *HeaderP;}; inline PkgIterator PkgBegin(); inline PkgIterator PkgEnd(); @@ -144,8 +146,8 @@ class pkgCache pkgCache(MMap *Map,bool DoMap = true); virtual ~pkgCache() {}; }; - -// Header structure + /*}}}*/ +// Header structure /*{{{*/ struct pkgCache::Header { // Signature information @@ -193,8 +195,8 @@ struct pkgCache::Header bool CheckSizes(Header &Against) const; Header(); }; - -struct pkgCache::Package + /*}}}*/ +struct pkgCache::Package /*{{{*/ { // Pointers map_ptrloc Name; // Stringtable @@ -212,15 +214,16 @@ struct pkgCache::Package unsigned char InstState; // Flags unsigned char CurrentState; // State - unsigned short ID; + unsigned int ID; unsigned long Flags; }; - -struct pkgCache::PackageFile + /*}}}*/ +struct pkgCache::PackageFile /*{{{*/ { // Names map_ptrloc FileName; // Stringtable map_ptrloc Archive; // Stringtable + map_ptrloc Codename; // Stringtable map_ptrloc Component; // Stringtable map_ptrloc Version; // Stringtable map_ptrloc Origin; // Stringtable @@ -233,27 +236,27 @@ struct pkgCache::PackageFile // Linked list map_ptrloc NextFile; // PackageFile - unsigned short ID; + unsigned int ID; time_t mtime; // Modification time for the file }; - -struct pkgCache::VerFile + /*}}}*/ +struct pkgCache::VerFile /*{{{*/ { map_ptrloc File; // PackageFile map_ptrloc NextFile; // PkgVerFile map_ptrloc Offset; // File offset unsigned short Size; }; - -struct pkgCache::DescFile + /*}}}*/ +struct pkgCache::DescFile /*{{{*/ { map_ptrloc File; // PackageFile map_ptrloc NextFile; // PkgVerFile map_ptrloc Offset; // File offset unsigned short Size; }; - -struct pkgCache::Version + /*}}}*/ +struct pkgCache::Version /*{{{*/ { map_ptrloc VerStr; // Stringtable map_ptrloc Section; // StringTable (StringItem) @@ -270,11 +273,11 @@ struct pkgCache::Version map_ptrloc Size; // These are the .deb size map_ptrloc InstalledSize; unsigned short Hash; - unsigned short ID; + unsigned int ID; unsigned char Priority; }; - -struct pkgCache::Description + /*}}}*/ +struct pkgCache::Description /*{{{*/ { // Language Code store the description translation language code. If // the value has a 0 lenght then this is readed using the Package @@ -287,10 +290,10 @@ struct pkgCache::Description map_ptrloc NextDesc; // Description map_ptrloc ParentPkg; // Package - unsigned short ID; + unsigned int ID; }; - -struct pkgCache::Dependency + /*}}}*/ +struct pkgCache::Dependency /*{{{*/ { map_ptrloc Version; // Stringtable map_ptrloc Package; // Package @@ -303,8 +306,8 @@ struct pkgCache::Dependency unsigned char Type; unsigned char CompareOp; }; - -struct pkgCache::Provides + /*}}}*/ +struct pkgCache::Provides /*{{{*/ { map_ptrloc ParentPkg; // Pacakge map_ptrloc Version; // Version @@ -312,13 +315,13 @@ struct pkgCache::Provides map_ptrloc NextProvides; // Provides map_ptrloc NextPkgProv; // Provides }; - -struct pkgCache::StringItem + /*}}}*/ +struct pkgCache::StringItem /*{{{*/ { map_ptrloc String; // Stringtable map_ptrloc NextItem; // StringItem }; - + /*}}}*/ #include inline pkgCache::PkgIterator pkgCache::PkgBegin() @@ -331,7 +334,7 @@ inline pkgCache::PkgFileIterator pkgCache::FileEnd() {return PkgFileIterator(*this,PkgFileP);}; // Oh I wish for Real Name Space Support -class pkgCache::Namespace +class pkgCache::Namespace /*{{{*/ { public: @@ -349,5 +352,5 @@ class pkgCache::Namespace typedef pkgCache::Dep Dep; typedef pkgCache::Flag Flag; }; - + /*}}}*/ #endif