Icky pooh.. partial revert of 64174eee41f502ed847e89fe52ba79311533e4f8
[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 CheckMethod;
32
33    public:   
34
35    string URI;
36    string Dist;
37    string FingerPrint;
38    string RootURI;
39
40    bool Acquire;
41    
42    // LORG:2006-02-21 make these methods virtual
43    virtual bool ParseRelease(string File);
44    virtual bool HasRelease() const { return GotRelease; }
45
46    virtual bool IsAuthenticated() const { return !FingerPrint.empty(); };
47    virtual bool FindChecksums(string URI,off_t &Size, string &MD5);
48    // Only used in repomd atm
49    virtual string FindURI(string DataType) {return "";};
50    // LORG:2006-02-23 
51    virtual string GetCheckMethod() {return CheckMethod;};
52    virtual string GetComprMethod(string URI) {return "bz2";};
53    
54    pkgRepository(string URI,string Dist, const pkgSourceList::Vendor *Vendor,
55                  string RootURI)
56       : GotRelease(0), URI(URI), Dist(Dist), RootURI(RootURI),
57         Acquire(1)
58    {
59       if (Vendor) FingerPrint = Vendor->FingerPrint;
60       CheckMethod = "MD5-Hash";
61    };
62
63    virtual ~pkgRepository() {};
64 };
65
66 #endif
67
68 // vim:sts=3:sw=3