summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/debsrcrecords.h
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:53:22 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:53:22 +0000
commit11e7af846822e893604052db7822de016fb97417 (patch)
treeb2b2e51153079aa3e88de9b6e29a61b996f78dac /apt-pkg/deb/debsrcrecords.h
parent6c9079759285e073024f7e3193c990ede2a17cef (diff)
Source record parsing
Author: jgg Date: 1999-04-04 01:17:29 GMT Source record parsing
Diffstat (limited to 'apt-pkg/deb/debsrcrecords.h')
-rw-r--r--apt-pkg/deb/debsrcrecords.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/apt-pkg/deb/debsrcrecords.h b/apt-pkg/deb/debsrcrecords.h
new file mode 100644
index 000000000..5d3b20488
--- /dev/null
+++ b/apt-pkg/deb/debsrcrecords.h
@@ -0,0 +1,46 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/
+// $Id: debsrcrecords.h,v 1.1 1999/04/04 01:17:29 jgg Exp $
+/* ######################################################################
+
+ Debian Source Package Records - Parser implementation for Debian style
+ source indexes
+
+ ##################################################################### */
+ /*}}}*/
+#ifndef PKGLIB_DEBSRCRECORDS_H
+#define PKGLIB_DEBSRCRECORDS_H
+
+#ifdef __GNUG__
+#pragma interface "apt-pkg/debsrcrecords.h"
+#endif
+
+#include <apt-pkg/srcrecords.h>
+#include <apt-pkg/tagfile.h>
+
+class debSrcRecordParser : public pkgSrcRecords::Parser
+{
+ pkgTagFile Tags;
+ pkgTagSection Sect;
+ char Buffer[10000];
+ const char *StaticBinList[400];
+ unsigned long iOffset;
+
+ public:
+
+ virtual bool Restart() {return Tags.Jump(Sect,0);};
+ virtual bool Step() {iOffset = Tags.Offset(); return Tags.Step(Sect);};
+ virtual bool Jump(unsigned long Off) {iOffset = Off; return Tags.Jump(Sect,Off);};
+
+ virtual string Package() {return Sect.FindS("Package");};
+ virtual string Version() {return Sect.FindS("Version");};
+ virtual string Maintainer() {return Sect.FindS("Maintainer");};
+ virtual string Section() {return Sect.FindS("Section");};
+ virtual const char **Binaries();
+ virtual unsigned long Offset() {return iOffset;};
+
+ debSrcRecordParser(FileFd *File) : Parser(File),
+ Tags(*File,sizeof(Buffer)) {};
+};
+
+#endif