From 11e7af846822e893604052db7822de016fb97417 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:53:22 +0000 Subject: Source record parsing Author: jgg Date: 1999-04-04 01:17:29 GMT Source record parsing --- apt-pkg/deb/debsrcrecords.h | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 apt-pkg/deb/debsrcrecords.h (limited to 'apt-pkg/deb/debsrcrecords.h') 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 +#include + +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 -- cgit v1.2.3