6b2df3485dbfa6652018debc78093a722fa2d04a
[apt.git] / apt-pkg / rpm / rpmrecords.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description                                                          /*{{{*/
3 // $Id: rpmrecords.h,v 1.3 2002/08/08 20:07:33 niemeyer Exp $
4 /* ######################################################################
5    
6    RPM Package Records - Parser for RPM hdlist/rpmdb files
7    
8    This provides display-type parsing for the Packages file. This is 
9    different than the the list parser which provides cache generation
10    services. There should be no overlap between these two.
11    
12    ##################################################################### */
13                                                                         /*}}}*/
14 // Header section: pkglib
15 #ifndef PKGLIB_RPMRECORDS_H
16 #define PKGLIB_RPMRECORDS_H
17
18 #ifdef __GNUG__
19 #pragma interface "apt-pkg/rpmrecords.h"
20 #endif 
21
22 #include <apt-pkg/pkgrecords.h>
23 #include <apt-pkg/fileutl.h>
24 #include <apt-pkg/rpmhandler.h>
25 #include <rpm/rpmlib.h>
26
27   
28 class RPMHandler;
29
30 class rpmRecordParser : public pkgRecords::Parser
31 {
32    RPMHandler *Handler;
33    bool IsDatabase;
34
35    char *Buffer;
36    unsigned BufSize;
37    unsigned BufUsed;
38
39    void BufCat(const char *text);
40    void BufCat(const char *begin, const char *end);
41    void BufCatTag(const char *tag, const char *value);
42    void BufCatDep(Dependency *Dep);
43    void BufCatDescr(const char *descr);
44
45    protected:
46    
47    virtual bool Jump(pkgCache::VerFileIterator const &Ver);
48    
49    public:
50
51    // These refer to the archive file for the Version
52    virtual string FileName();
53    virtual string MD5Hash();
54    virtual string SHA1Hash();
55    virtual string SourcePkg();
56    
57    // These are some general stats about the package
58    virtual string Maintainer();
59    virtual string ShortDesc();
60    virtual string LongDesc();
61    virtual string Name();
62    
63    // The record in raw text, in standard Debian format
64    virtual void GetRec(const char *&Start,const char *&Stop);
65
66    virtual bool HasFile(const char *File);
67
68    rpmRecordParser(string File,pkgCache &Cache);
69    ~rpmRecordParser();
70 };
71
72
73 #endif