]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-method.h
do not inline virtual destructors with d-pointers
[apt.git] / apt-pkg / acquire-method.h
index 2dd9ad685877682058b8a1f1527f5459f3484835..48bd956723e0d651c46468ef28c0697082e16e0b 100644 (file)
 #ifndef PKGLIB_ACQUIRE_METHOD_H
 #define PKGLIB_ACQUIRE_METHOD_H
 
+#include <apt-pkg/hashes.h>
+#include <apt-pkg/macros.h>
+
 #include <stdarg.h>
+#include <time.h>
 
 #include <string>
 #include <vector>
@@ -30,7 +34,6 @@
 #include <apt-pkg/strutl.h>
 #endif
 
-class Hashes;
 class pkgAcqMethod
 {
    protected:
@@ -44,14 +47,16 @@ class pkgAcqMethod
       time_t LastModified;
       bool IndexFile;
       bool FailIgnore;
+      HashStringList ExpectedHashes;
+      // a maximum size we will download, this can be the exact filesize
+      // for when we know it or a arbitrary limit when we don't know the
+      // filesize (like a InRelease file)
+      unsigned long long MaximumSize;
    };
    
    struct FetchResult
    {
-      std::string MD5Sum;
-      std::string SHA1Sum;
-      std::string SHA256Sum;
-      std::string SHA512Sum;
+      HashStringList Hashes;
       std::vector<std::string> GPGVOutput;
       time_t LastModified;
       bool IMSHit;
@@ -59,7 +64,7 @@ class pkgAcqMethod
       unsigned long long Size;
       unsigned long long ResumePoint;
       
-      void TakeHashes(Hashes &Hash);
+      void TakeHashes(class Hashes &Hash);
       FetchResult();
    };
 
@@ -103,7 +108,10 @@ class pkgAcqMethod
    inline void SetIP(std::string aIP) {IP = aIP;};
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
-   virtual ~pkgAcqMethod() {};
+   virtual ~pkgAcqMethod();
+   void DropPrivsOrDie();
+   private:
+   APT_HIDDEN void Dequeue();
 };
 
 /** @} */