merge lp:~mvo/apt/sha512-template to get fixes for the
[ntk/apt.git] / apt-pkg / pkgrecords.h
CommitLineData
f55ece0e
AL
1// -*- mode: cpp; mode: fold -*-
2// Description /*{{{*/
a7c835af 3// $Id: pkgrecords.h,v 1.6 2001/03/13 06:51:46 jgg Exp $
f55ece0e
AL
4/* ######################################################################
5
6 Package Records - Allows access to complete package description records
7 directly from the file.
8
9 The package record system abstracts the actual parsing of the
10 package files. This is different than the generators parser in that
11 it is used to access information not generate information. No
12 information touched by the generator should be parable from here as
13 it can always be retreived directly from the cache.
14
15 ##################################################################### */
16 /*}}}*/
f55ece0e
AL
17#ifndef PKGLIB_PKGRECORDS_H
18#define PKGLIB_PKGRECORDS_H
19
f55ece0e
AL
20
21#include <apt-pkg/pkgcache.h>
22#include <apt-pkg/fileutl.h>
30257943 23#include <vector>
f55ece0e 24
92fcbfc1 25class pkgRecords /*{{{*/
f55ece0e
AL
26{
27 public:
28 class Parser;
29
30 private:
be9b62f7
MV
31 /** \brief dpointer placeholder (for later in case we need it) */
32 void *d;
f55ece0e
AL
33
34 pkgCache &Cache;
30257943
MV
35 std::vector<Parser *>Files;
36
be9b62f7 37 public:
f55ece0e 38 // Lookup function
03e39e59 39 Parser &Lookup(pkgCache::VerFileIterator const &Ver);
a52f938b 40 Parser &Lookup(pkgCache::DescFileIterator const &Desc);
03e39e59 41
f55ece0e
AL
42 // Construct destruct
43 pkgRecords(pkgCache &Cache);
44 ~pkgRecords();
45};
92fcbfc1
DK
46 /*}}}*/
47class pkgRecords::Parser /*{{{*/
f55ece0e 48{
7e798dd7 49 protected:
f55ece0e 50
03e39e59 51 virtual bool Jump(pkgCache::VerFileIterator const &Ver) = 0;
a52f938b 52 virtual bool Jump(pkgCache::DescFileIterator const &Desc) = 0;
f55ece0e 53
7e798dd7 54 public:
b2e465d6 55 friend class pkgRecords;
7e798dd7
AL
56
57 // These refer to the archive file for the Version
58 virtual string FileName() {return string();};
59 virtual string MD5Hash() {return string();};
a7c835af 60 virtual string SHA1Hash() {return string();};
495e5cb2 61 virtual string SHA256Hash() {return string();};
d9b9e9e2 62 virtual string SHA512Hash() {return string();};
36375005 63 virtual string SourcePkg() {return string();};
c2f2b862 64 virtual string SourceVer() {return string();};
b2e465d6 65
7e798dd7
AL
66 // These are some general stats about the package
67 virtual string Maintainer() {return string();};
68 virtual string ShortDesc() {return string();};
69 virtual string LongDesc() {return string();};
b2e465d6 70 virtual string Name() {return string();};
f27b4a70 71 virtual string Homepage() {return string();}
b2e465d6
AL
72
73 // The record in binary form
74 virtual void GetRec(const char *&Start,const char *&Stop) {Start = Stop = 0;};
75
f55ece0e
AL
76 virtual ~Parser() {};
77};
92fcbfc1 78 /*}}}*/
f55ece0e 79#endif