- initial import of revision 374 from cnc
[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    
32    public:   
33
34    string URI;
35    string Dist;
36    string FingerPrint;
37    string RootURI;
38
39    bool Acquire;
40    
41    bool ParseRelease(string File);
42    bool HasRelease() const { return GotRelease; }
43
44    bool IsAuthenticated() const { return !FingerPrint.empty(); };
45    bool FindChecksums(string URI,unsigned long &Size, string &MD5);
46    
47    pkgRepository(string URI,string Dist, const pkgSourceList::Vendor *Vendor,
48                  string RootURI)
49       : GotRelease(0), URI(URI), Dist(Dist), RootURI(RootURI),
50         Acquire(1)
51    {
52       if (Vendor) FingerPrint = Vendor->FingerPrint;
53    };
54
55 };
56
57 #endif
58
59 // vim:sts=3:sw=3