]> git.saurik.com Git - apt.git/blob - apt-pkg/indexrecords.h
allow ratelimiting progress reporting for testcases
[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 #include <apt-pkg/hashes.h>
9
10 #include <map>
11 #include <vector>
12 #include <ctime>
13 #include <string>
14
15 #ifndef APT_8_CLEANER_HEADERS
16 #include <apt-pkg/fileutl.h>
17 #endif
18 #ifndef APT_10_CLEANER_HEADERS
19 #include <apt-pkg/pkgcache.h>
20 #endif
21
22 class indexRecords
23 {
24 APT_HIDDEN bool parseSumData(const char *&Start, const char *End, std::string &Name,
25 std::string &Hash, unsigned long long &Size);
26 public:
27 struct checkSum;
28 std::string ErrorText;
29
30 private:
31 enum APT_HIDDEN { ALWAYS_TRUSTED, NEVER_TRUSTED, CHECK_TRUST } Trusted;
32 // dpointer (for later)
33 void * d;
34
35 protected:
36 std::string Dist;
37 std::string Suite;
38 std::string ExpectedDist;
39 time_t Date;
40 time_t ValidUntil;
41 bool SupportsAcquireByHash;
42
43 std::map<std::string,checkSum *> Entries;
44
45 public:
46 #if APT_PKG_ABI >= 413
47 indexRecords(const std::string &ExpectedDist = "");
48 #else
49 indexRecords();
50 indexRecords(const std::string ExpectedDist);
51 #endif
52
53 // Lookup function
54 virtual checkSum *Lookup(const std::string MetaKey);
55 /** \brief tests if a checksum for this file is available */
56 bool Exists(std::string const &MetaKey) const;
57 std::vector<std::string> MetaKeys();
58
59 virtual bool Load(std::string Filename);
60 virtual bool CheckDist(const std::string MaybeDist) const;
61
62 std::string GetDist() const;
63 std::string GetSuite() const;
64 bool GetSupportsAcquireByHash() const;
65 time_t GetValidUntil() const;
66 time_t GetDate() const;
67 std::string GetExpectedDist() const;
68
69 /** \brief check if source is marked as always trusted */
70 bool IsAlwaysTrusted() const;
71 /** \brief check if source is marked as never trusted */
72 bool IsNeverTrusted() const;
73
74 /** \brief sets an explicit trust value
75 *
76 * \b true means that the source should always be considered trusted,
77 * while \b false marks a source as always untrusted, even if we have
78 * a valid signature and everything.
79 */
80 void SetTrusted(bool const Trusted);
81
82 virtual ~indexRecords();
83 };
84
85 APT_IGNORE_DEPRECATED_PUSH
86 struct indexRecords::checkSum
87 {
88 std::string MetaKeyFilename;
89 HashStringList Hashes;
90 unsigned long long Size;
91
92 APT_DEPRECATED HashString Hash;
93 };
94 APT_IGNORE_DEPRECATED_POP
95
96 #endif