X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/549edd163e34a50091623b47881f2eefbdc53aca..1abbce9eafbba7a6fd22bd6ddd9287e97113fc87:/apt-pkg/tagfile.h diff --git a/apt-pkg/tagfile.h b/apt-pkg/tagfile.h index f63a51d07..60d3c2cd0 100644 --- a/apt-pkg/tagfile.h +++ b/apt-pkg/tagfile.h @@ -23,16 +23,17 @@ #include #include - + class pkgTagSection { const char *Section; - // We have a limit of 256 tags per section. unsigned int Indexes[256]; unsigned int AlphaIndexes[0x100]; - unsigned int TagCount; + int *reserved1; + int *reserved2; + int *reserved3; /* This very simple hash function for the last 8 letters gives very good performance on the debian package files */ @@ -44,7 +45,6 @@ class pkgTagSection return Res & 0xFF; } - protected: const char *Stop; @@ -57,6 +57,7 @@ class pkgTagSection bool Find(const char *Tag,unsigned &Pos) const; string FindS(const char *Tag) const; signed int FindI(const char *Tag,signed long Default = 0) const ; + unsigned long long FindULL(const char *Tag, unsigned long long const &Default = 0) const; bool FindFlag(const char *Tag,unsigned long &Flags, unsigned long Flag) const; bool Scan(const char *Start,unsigned long MaxLength); @@ -79,15 +80,10 @@ class pkgTagSection pkgTagSection() : Section(0), Stop(0) {}; }; +class pkgTagFilePrivate; class pkgTagFile { - FileFd &Fd; - char *Buffer; - char *Start; - char *End; - bool Done; - unsigned long iOffset; - unsigned long Size; + pkgTagFilePrivate *d; bool Fill(); bool Resize(); @@ -95,7 +91,7 @@ class pkgTagFile public: bool Step(pkgTagSection &Section); - inline unsigned long Offset() {return iOffset;}; + inline unsigned long Offset(); bool Jump(pkgTagSection &Tag,unsigned long Offset); pkgTagFile(FileFd *F,unsigned long Size = 32*1024);