- merge repomd branch
[apt.git] / apt-pkg / repository.h
1 // CNC:2002-07-03
2
3 #ifndef PKGLIB_REPOSITORY_H
4 #define PKBLIB_REPOSITORY_H
5
6 #ifdef __GNUG__
7 #pragma interface "apt-pkg/repository.h"
8 #endif
9
10 #include <string>
11 #include <map>
12
13 #include <apt-pkg/sourcelist.h>
14
15 using std::map;
16
17 class pkgRepository
18 {
19    protected:
20    
21
22    struct Checksum {
23       unsigned long Size;
24       string MD5;
25       string SHA1;
26    };
27    
28    map<string,Checksum> IndexChecksums; // path -> checksum data   
29
30    bool GotRelease;
31    string ComprMethod;
32    string CheckMethod;
33
34    public:   
35
36    string URI;
37    string Dist;
38    string FingerPrint;
39    string RootURI;
40
41    bool Acquire;
42    
43    // LORG:2006-02-21 make these methods virtual
44    virtual bool ParseRelease(string File);
45    virtual bool HasRelease() const { return GotRelease; }
46
47    virtual bool IsAuthenticated() const { return !FingerPrint.empty(); };
48    virtual bool FindChecksums(string URI,unsigned long &Size, string &MD5);
49    // LORG:2006-02-23 
50    virtual string GetComprMethod() {return ComprMethod;};
51    virtual string GetCheckMethod() {return CheckMethod;};
52    
53    pkgRepository(string URI,string Dist, const pkgSourceList::Vendor *Vendor,
54                  string RootURI)
55       : GotRelease(0), URI(URI), Dist(Dist), RootURI(RootURI),
56         Acquire(1)
57    {
58       if (Vendor) FingerPrint = Vendor->FingerPrint;
59       ComprMethod = "bz2";
60       CheckMethod = "MD5-Hash";
61    };
62
63 };
64
65 #endif
66
67 // vim:sts=3:sw=3