diff options
author | David Kalnischkies <david@kalnischkies.de> | 2015-06-11 11:38:04 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2015-06-11 11:38:04 +0200 |
commit | e3c1cfc767f17f5e9b2cd99f2658db3d6ac8edd9 (patch) | |
tree | 3114a44b2499c76baea4aa24ec1b408c3e21cf3d /apt-pkg/indexfile.h | |
parent | 1da3b7b8e15b642135b54684e70a0c271471f07a (diff) |
use IndexTarget to get to IndexFile
Removes a bunch of duplicated code in the deb-specific parts. Especially
the Description part is now handled centrally by IndexTarget instead of
being duplicated to the derivations of IndexFile.
Git-Dch: Ignore
Diffstat (limited to 'apt-pkg/indexfile.h')
-rw-r--r-- | apt-pkg/indexfile.h | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/apt-pkg/indexfile.h b/apt-pkg/indexfile.h index 817165f08..e6e429c2c 100644 --- a/apt-pkg/indexfile.h +++ b/apt-pkg/indexfile.h @@ -28,6 +28,7 @@ #include <apt-pkg/cacheiterators.h> #include <apt-pkg/macros.h> +#include <map> #include <string> #ifndef APT_8_CLEANER_HEADERS @@ -40,17 +41,48 @@ class pkgAcquire; class pkgCacheGenerator; class OpProgress; +class IndexTarget /*{{{*/ +/** \brief Information about an index file. */ +{ + public: + /** \brief A URI from which the index file can be downloaded. */ + std::string URI; + + /** \brief A description of the index file. */ + std::string Description; + + /** \brief A shorter description of the index file. */ + std::string ShortDesc; + + /** \brief The key by which this index file should be + looked up within the meta index file. */ + std::string MetaKey; + + /** \brief Is it okay if the file isn't found in the meta index */ + bool IsOptional; + + /** \brief Target specific options defined by the implementation */ + std::map<std::string, std::string> Options; + + IndexTarget(std::string const &MetaKey, std::string const &ShortDesc, + std::string const &LongDesc, std::string const &URI, bool const IsOptional, + std::map<std::string, std::string> const &Options); + + std::string Option(std::string const &Key) const; +}; + /*}}}*/ + class pkgIndexFile { protected: bool Trusted; - + public: class Type { public: - + // Global list of Items supported static Type **GlobalList; static unsigned long GlobalListLen; @@ -70,7 +102,7 @@ class pkgIndexFile virtual std::string ArchiveInfo(pkgCache::VerIterator Ver) const; virtual std::string SourceInfo(pkgSrcRecords::Parser const &Record, pkgSrcRecords::File const &File) const; - virtual std::string Describe(bool Short = false) const = 0; + virtual std::string Describe(bool Short = false) const = 0; // Interface for acquire virtual std::string ArchiveURI(std::string /*File*/) const {return std::string();}; @@ -95,9 +127,25 @@ class pkgIndexFile static std::string LanguageCode(); bool IsTrusted() const { return Trusted; }; - - pkgIndexFile(bool Trusted): Trusted(Trusted) {}; + + pkgIndexFile(bool Trusted); virtual ~pkgIndexFile() {}; }; +class pkgIndexTargetFile : public pkgIndexFile +{ +protected: + IndexTarget const Target; + + std::string IndexFileName() const; + +public: + virtual std::string ArchiveURI(std::string File) const; + virtual std::string Describe(bool Short = false) const; + virtual bool Exists() const; + virtual unsigned long Size() const; + + pkgIndexTargetFile(IndexTarget const &Target, bool const Trusted); +}; + #endif |