diff options
Diffstat (limited to 'apt-pkg/deb/debsrcrecords.h')
-rw-r--r-- | apt-pkg/deb/debsrcrecords.h | 46 |
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 |