merge with my debian-sid branch
[ntk/apt.git] / apt-pkg / indexrecords.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: indexrecords.h,v 1.1.2.1 2003/12/24 23:09:17 mdz Exp $
4 /*}}}*/
5 #ifndef PKGLIB_INDEXRECORDS_H
6 #define PKGLIB_INDEXRECORDS_H
7
8
9 #include <apt-pkg/pkgcache.h>
10 #include <apt-pkg/hashes.h>
11
12 #include <map>
13 #include <vector>
14 #include <ctime>
15
16 class indexRecords
17 {
18 bool parseSumData(const char *&Start, const char *End, std::string &Name,
19 std::string &Hash, unsigned long long &Size);
20 public:
21 struct checkSum;
22 std::string ErrorText;
23
24 protected:
25 std::string Dist;
26 std::string Suite;
27 std::string ExpectedDist;
28 time_t ValidUntil;
29
30 std::map<std::string,checkSum *> Entries;
31
32 public:
33
34 indexRecords();
35 indexRecords(const std::string ExpectedDist);
36
37 // Lookup function
38 virtual const checkSum *Lookup(const std::string MetaKey);
39 /** \brief tests if a checksum for this file is available */
40 bool Exists(std::string const &MetaKey) const;
41 std::vector<std::string> MetaKeys();
42
43 virtual bool Load(std::string Filename);
44 std::string GetDist() const;
45 time_t GetValidUntil() const;
46 virtual bool CheckDist(const std::string MaybeDist) const;
47 std::string GetExpectedDist() const;
48 virtual ~indexRecords(){};
49 };
50
51 struct indexRecords::checkSum
52 {
53 std::string MetaKeyFilename;
54 HashString Hash;
55 unsigned long long Size;
56 };
57
58 #endif