Merge remote-tracking branch 'donkult/feature/generalize-gzipindex' into debian/sid
[ntk/apt.git] / apt-pkg / metaindex.h
... / ...
CommitLineData
1#ifndef PKGLIB_METAINDEX_H
2#define PKGLIB_METAINDEX_H
3
4#include <apt-pkg/indexfile.h>
5#include <apt-pkg/init.h>
6
7#include <stddef.h>
8
9#include <string>
10#include <vector>
11
12#ifndef APT_10_CLEANER_HEADERS
13#include <apt-pkg/pkgcache.h>
14class pkgCacheGenerator;
15class OpProgress;
16#endif
17#ifndef APT_8_CLEANER_HEADERS
18#include <apt-pkg/srcrecords.h>
19#include <apt-pkg/pkgrecords.h>
20#include <apt-pkg/vendor.h>
21using std::string;
22#endif
23
24class pkgAcquire;
25
26class metaIndex
27{
28 protected:
29 std::vector <pkgIndexFile *> *Indexes;
30 const char *Type;
31 std::string URI;
32 std::string Dist;
33 bool Trusted;
34
35 public:
36
37 // Various accessors
38 virtual std::string GetURI() const {return URI;}
39 virtual std::string GetDist() const {return Dist;}
40 virtual const char* GetType() const {return Type;}
41
42 // interface to to query it
43#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13)
44 // returns the path of the local file (or "" if its not available)
45 virtual std::string LocalFileName() const {return "";};
46#endif
47
48 // Interface for acquire
49 virtual std::string ArchiveURI(std::string const& File) const = 0;
50 virtual bool GetIndexes(pkgAcquire *Owner, bool const &GetAll=false) const = 0;
51 virtual std::vector<pkgIndexFile *> *GetIndexFiles() = 0;
52 virtual bool IsTrusted() const = 0;
53
54 metaIndex(std::string const &URI, std::string const &Dist,
55 char const * const Type)
56 : Indexes(NULL), Type(Type), URI(URI), Dist(Dist)
57 {
58 /* nothing */
59 }
60
61 virtual ~metaIndex()
62 {
63 if (Indexes == 0)
64 return;
65 for (std::vector<pkgIndexFile *>::iterator I = (*Indexes).begin();
66 I != (*Indexes).end(); ++I)
67 delete *I;
68 delete Indexes;
69 }
70};
71
72#endif