home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / include / apt-pkg / debsrcrecords.h < prev    next >
C/C++ Source or Header  |  1999-06-21  |  2KB  |  49 lines

  1. // -*- mode: cpp; mode: fold -*-
  2. // Description                                /*{{{*/
  3. // $Id: debsrcrecords.h,v 1.3 1999/04/07 05:51:01 jgg Exp $
  4. /* ######################################################################
  5.    
  6.    Debian Source Package Records - Parser implementation for Debian style
  7.                                    source indexes
  8.    
  9.    ##################################################################### */
  10.                                     /*}}}*/
  11. #ifndef PKGLIB_DEBSRCRECORDS_H
  12. #define PKGLIB_DEBSRCRECORDS_H
  13.  
  14. #ifdef __GNUG__
  15. #pragma interface "apt-pkg/debsrcrecords.h"
  16. #endif 
  17.  
  18. #include <apt-pkg/srcrecords.h>
  19. #include <apt-pkg/tagfile.h>
  20.  
  21. class debSrcRecordParser : public pkgSrcRecords::Parser
  22. {
  23.    pkgTagFile Tags;
  24.    pkgTagSection Sect;
  25.    char Buffer[10000];
  26.    const char *StaticBinList[400];
  27.    unsigned long iOffset;
  28.    
  29.    public:
  30.  
  31.    virtual bool Restart() {return Tags.Jump(Sect,0);};
  32.    virtual bool Step() {iOffset = Tags.Offset(); return Tags.Step(Sect);};
  33.    virtual bool Jump(unsigned long Off) {iOffset = Off; return Tags.Jump(Sect,Off);};
  34.  
  35.    virtual string Package() {return Sect.FindS("Package");};
  36.    virtual string Version() {return Sect.FindS("Version");};
  37.    virtual string Maintainer() {return Sect.FindS("Maintainer");};
  38.    virtual string Section() {return Sect.FindS("Section");};
  39.    virtual const char **Binaries();
  40.    virtual unsigned long Offset() {return iOffset;};
  41.    virtual bool Files(vector<pkgSrcRecords::File> &F);
  42.    
  43.    debSrcRecordParser(FileFd *File,pkgSourceList::const_iterator SrcItem) : 
  44.                    Parser(File,SrcItem),
  45.                    Tags(*File,sizeof(Buffer)) {};
  46. };
  47.  
  48. #endif
  49.