summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/deblistparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/deb/deblistparser.h')
-rw-r--r--apt-pkg/deb/deblistparser.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h
new file mode 100644
index 000000000..30eb869ad
--- /dev/null
+++ b/apt-pkg/deb/deblistparser.h
@@ -0,0 +1,51 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/
+// $Id: deblistparser.h,v 1.1 1998/07/04 05:58:08 jgg Exp $
+/* ######################################################################
+
+ Debian Package List Parser - This implements the abstract parser
+ interface for Debian package files
+
+ ##################################################################### */
+ /*}}}*/
+// Header section: pkglib
+#ifndef PKGLIB_DEBLISTPARSER_H
+#define PKGLIB_DEBLISTPARSER_H
+
+#include <pkglib/pkgcachegen.h>
+#include <pkglib/tagfile.h>
+
+class debListParser : public pkgCacheGenerator::ListParser
+{
+ pkgTagFile Tags;
+ pkgTagSection Section;
+
+ // Parser Helper
+ struct WordList
+ {
+ char *Str;
+ unsigned char Val;
+ };
+
+ string FindTag(const char *Tag);
+ unsigned long UniqFindTagWrite(const char *Tag);
+ bool HandleFlag(const char *Tag,unsigned long &Flags,unsigned long Flag);
+ bool ParseStatus(pkgCache::PkgIterator Pkg,pkgCache::VerIterator Ver);
+ bool GrabWord(string Word,WordList *List,int Count,unsigned char &Out);
+
+ public:
+
+ // These all operate against the current section
+ virtual string Package();
+ virtual string Version();
+ virtual bool NewVersion(pkgCache::VerIterator Ver);
+ virtual bool NewPackage(pkgCache::PkgIterator Pkg);
+ virtual bool UsePackage(pkgCache::PkgIterator Pkg,
+ pkgCache::VerIterator Ver);
+
+ virtual bool Step();
+
+ debListParser(File &File);
+};
+
+#endif