]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/indexrecords.h
promote filesize to a hashstring
[apt.git] / apt-pkg / indexrecords.h
index 500cf23c48b6a7b11f40cbd5c63d018e06687383..88a06779c5292ab9b37063963465e45977c2ab96 100644 (file)
@@ -5,53 +5,92 @@
 #ifndef PKGLIB_INDEXRECORDS_H
 #define PKGLIB_INDEXRECORDS_H
 
-
-#include <apt-pkg/pkgcache.h>
-#include <apt-pkg/fileutl.h>
 #include <apt-pkg/hashes.h>
 
 #include <map>
 #include <vector>
 #include <ctime>
+#include <string>
+
+#ifndef APT_8_CLEANER_HEADERS
+#include <apt-pkg/fileutl.h>
+#endif
+#ifndef APT_10_CLEANER_HEADERS
+#include <apt-pkg/pkgcache.h>
+#endif
 
 class indexRecords
 {
-   bool parseSumData(const char *&Start, const char *End, string &Name,
-                    string &Hash, size_t &Size);
+   APT_HIDDEN bool parseSumData(const char *&Start, const char *End, std::string &Name,
+                    std::string &Hash, unsigned long long &Size);
    public:
    struct checkSum;
-   string ErrorText;
-   
+   std::string ErrorText;
+
+   private:
+   enum APT_HIDDEN { ALWAYS_TRUSTED, NEVER_TRUSTED, CHECK_TRUST } Trusted;
+   // dpointer (for later)
+   void * d;
+
    protected:
-   string Dist;
-   string Suite;
-   string ExpectedDist;
+   std::string Dist;
+   std::string Suite;
+   std::string ExpectedDist;
    time_t ValidUntil;
+   bool SupportsAcquireByHash;
 
-   std::map<string,checkSum *> Entries;
+   std::map<std::string,checkSum *> Entries;
 
    public:
 
-   indexRecords();
-   indexRecords(const string ExpectedDist);
+   indexRecords(const std::string &ExpectedDist = "");
 
    // Lookup function
-   virtual const checkSum *Lookup(const string MetaKey);
+   virtual checkSum *Lookup(const std::string MetaKey);
+   /** \brief tests if a checksum for this file is available */
+   bool Exists(std::string const &MetaKey) const;
    std::vector<std::string> MetaKeys();
 
-   virtual bool Load(string Filename);
-   string GetDist() const;
+   virtual bool Load(std::string Filename);
+   virtual bool CheckDist(const std::string MaybeDist) const;
+
+   std::string GetDist() const;
+   std::string GetSuite() const;
+   bool GetSupportsAcquireByHash() const;
    time_t GetValidUntil() const;
-   virtual bool CheckDist(const string MaybeDist) const;
-   string GetExpectedDist() const;
-   virtual ~indexRecords(){};
+   std::string GetExpectedDist() const;
+
+   /** \brief check if source is marked as always trusted */
+   bool IsAlwaysTrusted() const;
+   /** \brief check if source is marked as never trusted */
+   bool IsNeverTrusted() const;
+
+   /** \brief sets an explicit trust value
+    *
+    * \b true means that the source should always be considered trusted,
+    * while \b false marks a source as always untrusted, even if we have
+    * a valid signature and everything.
+    */
+   void SetTrusted(bool const Trusted);
+
+   virtual ~indexRecords();
 };
 
+#if __GNUC__ >= 4
+       // ensure that con- & de-structor don't trigger this warning
+       #pragma GCC diagnostic push
+       #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
 struct indexRecords::checkSum
 {
-   string MetaKeyFilename;
-   HashString Hash;
-   size_t Size;      
+   std::string MetaKeyFilename;
+   HashStringList Hashes;
+   unsigned long long Size;
+
+   APT_DEPRECATED HashString Hash;
 };
+#if __GNUC__ >= 4
+       #pragma GCC diagnostic pop
+#endif
 
 #endif