apt  0.9.7.5ubuntu3
debsrcrecords.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: debsrcrecords.h,v 1.8 2004/03/17 05:58:54 mdz 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 
15 #include <apt-pkg/srcrecords.h>
16 #include <apt-pkg/tagfile.h>
17 #include <apt-pkg/fileutl.h>
18 
20 {
22  void *d;
23 
24  FileFd Fd;
25  pkgTagFile Tags;
26  pkgTagSection Sect;
27  std::vector<const char*> StaticBinList;
28  unsigned long iOffset;
29  char *Buffer;
30 
31  public:
32 
33  virtual bool Restart() {return Tags.Jump(Sect,0);};
34  virtual bool Step() {iOffset = Tags.Offset(); return Tags.Step(Sect);};
35  virtual bool Jump(unsigned long const &Off) {iOffset = Off; return Tags.Jump(Sect,Off);};
36 
37  virtual std::string Package() const {return Sect.FindS("Package");};
38  virtual std::string Version() const {return Sect.FindS("Version");};
39  virtual std::string Maintainer() const {return Sect.FindS("Maintainer");};
40  virtual std::string Section() const {return Sect.FindS("Section");};
41  virtual const char **Binaries();
42  virtual bool BuildDepends(std::vector<BuildDepRec> &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch = true);
43  virtual unsigned long Offset() {return iOffset;};
44  virtual std::string AsStr()
45  {
46  const char *Start=0,*Stop=0;
47  Sect.GetSection(Start,Stop);
48  return std::string(Start,Stop);
49  };
50  virtual bool Files(std::vector<pkgSrcRecords::File> &F);
51 
52  debSrcRecordParser(std::string const &File,pkgIndexFile const *Index)
53  : Parser(Index), Fd(File,FileFd::ReadOnly, FileFd::Extension), Tags(&Fd,102400),
54  Buffer(NULL) {}
55  virtual ~debSrcRecordParser();
56 };
57 
58 #endif