2e8f6918d190383f0b9422562d14767dd60ed45a
[apt.git] / apt-pkg / rpm / rpmsrcrecords.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description                                                          /*{{{*/
3 // $Id: rpmsrcrecords.h,v 1.5 2002/08/08 20:07:33 niemeyer Exp $
4 /* ######################################################################
5    
6    SRPM Records - Parser implementation for RPM style source indexes
7    
8    ##################################################################### 
9  */
10                                                                         /*}}}*/
11 #ifndef PKGLIB_RPMSRCRECORDS_H
12 #define PKGLIB_RPMSRCRECORDS_H
13
14 #ifdef __GNUG__
15 #pragma interface "apt-pkg/rpmsrcrecords.h"
16 #endif 
17
18 #include <apt-pkg/srcrecords.h>
19 #include <apt-pkg/fileutl.h>
20 #include <rpm/rpmlib.h>
21
22   
23 class RPMHandler;
24
25 class rpmSrcRecordParser : public pkgSrcRecords::Parser
26 {
27    RPMHandler *Handler;
28    Header HeaderP;
29
30    const char *StaticBinList[400];
31
32    char *Buffer;
33    unsigned int BufSize;
34    unsigned int BufUsed;
35    
36    void BufCat(char *text);
37    void BufCat(char *begin, char *end);
38    void BufCatTag(char *tag, char *value);
39    void BufCatDep(char *pkg, char *version, int flags);
40    void BufCatDescr(char *descr);
41
42 public:
43    virtual bool Restart();
44    virtual bool Step(); 
45    virtual bool Jump(unsigned long Off);
46
47    virtual string Package() const;
48    virtual string Version() const;
49    virtual string Maintainer() const;
50    virtual string Section() const;
51    virtual const char **Binaries();
52    virtual unsigned long Offset();
53    virtual string AsStr();
54    virtual bool Files(vector<pkgSrcRecords::File> &F);
55    virtual bool BuildDepends(vector<BuildDepRec> &BuildDeps, bool ArchOnly);
56
57    rpmSrcRecordParser(string File,pkgIndexFile const *Index);
58    ~rpmSrcRecordParser();
59 };
60
61 #endif