summaryrefslogtreecommitdiff
path: root/apt-pkg/indexfile.h
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-07-20 10:17:29 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-08-10 17:27:59 +0200
commitc9443c01208377f0cba9706412ea3a98ad97b56d (patch)
treee324eb72ee264cc41d92d5c7fc78af77351f6b88 /apt-pkg/indexfile.h
parent5465192b9aeb1ccea778950ccf2d1b7b32f2cd91 (diff)
elimate duplicated code in pkgIndexFile subclasses
Trade deduplication of code for a bunch of new virtuals, so it is actually visible how the different indexes behave cleaning up the interface at large in the process. Git-Dch: Ignore
Diffstat (limited to 'apt-pkg/indexfile.h')
-rw-r--r--apt-pkg/indexfile.h79
1 files changed, 59 insertions, 20 deletions
diff --git a/apt-pkg/indexfile.h b/apt-pkg/indexfile.h
index 5be7794bf..77e80ed41 100644
--- a/apt-pkg/indexfile.h
+++ b/apt-pkg/indexfile.h
@@ -38,6 +38,7 @@ class pkgAcquire;
#endif
class pkgCacheGenerator;
+class pkgCacheListParser;
class OpProgress;
class IndexTarget /*{{{*/
@@ -105,12 +106,12 @@ class pkgIndexFile
// Global list of Items supported
static Type **GlobalList;
static unsigned long GlobalListLen;
- static Type *GetType(const char *Type) APT_PURE;
+ static Type *GetType(const char * const Type) APT_PURE;
const char *Label;
- virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator /*File*/) const {return 0;};
- virtual pkgSrcRecords::Parser *CreateSrcPkgParser(std::string /*File*/) const {return 0;};
+ virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator const &/*File*/) const {return 0;};
+ virtual pkgSrcRecords::Parser *CreateSrcPkgParser(std::string const &/*File*/) const {return 0;};
Type();
virtual ~Type() {};
};
@@ -118,13 +119,13 @@ class pkgIndexFile
virtual const Type *GetType() const = 0;
// Return descriptive strings of various sorts
- virtual std::string ArchiveInfo(pkgCache::VerIterator Ver) const;
+ virtual std::string ArchiveInfo(pkgCache::VerIterator const &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 const Short = false) const = 0;
// Interface for acquire
- virtual std::string ArchiveURI(std::string /*File*/) const {return std::string();};
+ virtual std::string ArchiveURI(std::string const &/*File*/) const {return std::string();};
// Interface for the record parsers
virtual pkgSrcRecords::Parser *CreateSrcParser() const {return 0;};
@@ -133,40 +134,78 @@ class pkgIndexFile
virtual bool Exists() const = 0;
virtual bool HasPackages() const = 0;
virtual unsigned long Size() const = 0;
- virtual bool Merge(pkgCacheGenerator &/*Gen*/, OpProgress* /*Prog*/) const { return false; };
- APT_DEPRECATED virtual bool Merge(pkgCacheGenerator &Gen, OpProgress &Prog) const
- { return Merge(Gen, &Prog); };
- virtual bool MergeFileProvides(pkgCacheGenerator &/*Gen*/,OpProgress* /*Prog*/) const {return true;};
- APT_DEPRECATED virtual bool MergeFileProvides(pkgCacheGenerator &Gen, OpProgress &Prog) const
- {return MergeFileProvides(Gen, &Prog);};
+ virtual bool Merge(pkgCacheGenerator &/*Gen*/, OpProgress* const /*Prog*/) { return true; };
+ virtual bool MergeFileProvides(pkgCacheGenerator &/*Gen*/,OpProgress* /*Prog*/) {return true;};
virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const;
static bool TranslationsAvailable();
- static bool CheckLanguageCode(const char *Lang);
+ static bool CheckLanguageCode(const char * const Lang);
static std::string LanguageCode();
bool IsTrusted() const { return Trusted; };
- explicit pkgIndexFile(bool Trusted);
+ explicit pkgIndexFile(bool const Trusted);
virtual ~pkgIndexFile();
};
-class pkgIndexTargetFile : public pkgIndexFile
+class pkgDebianIndexFile : public pkgIndexFile
+{
+protected:
+ virtual std::string IndexFileName() const = 0;
+ virtual std::string GetComponent() const = 0;
+ virtual std::string GetArchitecture() const = 0;
+ virtual std::string GetProgressDescription() const = 0;
+ virtual uint8_t GetIndexFlags() const = 0;
+ virtual bool OpenListFile(FileFd &Pkg, std::string const &FileName) = 0;
+ APT_HIDDEN virtual pkgCacheListParser * CreateListParser(FileFd &Pkg);
+
+public:
+ virtual bool Merge(pkgCacheGenerator &Gen, OpProgress* const Prog) APT_OVERRIDE;
+ virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const APT_OVERRIDE;
+
+ pkgDebianIndexFile(bool const Trusted);
+ virtual ~pkgDebianIndexFile();
+};
+
+class pkgDebianIndexTargetFile : public pkgDebianIndexFile
{
void * const d;
protected:
IndexTarget const Target;
- std::string IndexFileName() const;
+ virtual std::string IndexFileName() const APT_OVERRIDE;
+ virtual std::string GetComponent() const APT_OVERRIDE;
+ virtual std::string GetArchitecture() const APT_OVERRIDE;
+ virtual std::string GetProgressDescription() const APT_OVERRIDE;
+ virtual bool OpenListFile(FileFd &Pkg, std::string const &FileName) APT_OVERRIDE;
+
+public:
+ virtual std::string ArchiveURI(std::string const &File) const APT_OVERRIDE;
+ virtual std::string Describe(bool const Short = false) const APT_OVERRIDE;
+ virtual bool Exists() const APT_OVERRIDE;
+ virtual unsigned long Size() const APT_OVERRIDE;
+
+ pkgDebianIndexTargetFile(IndexTarget const &Target, bool const Trusted);
+ virtual ~pkgDebianIndexTargetFile();
+};
+
+class pkgDebianIndexRealFile : public pkgDebianIndexFile
+{
+ void * const d;
+protected:
+ std::string File;
+ virtual std::string IndexFileName() const APT_OVERRIDE;
+ virtual std::string GetProgressDescription() const APT_OVERRIDE;
+ virtual bool OpenListFile(FileFd &Pkg, std::string const &FileName) APT_OVERRIDE;
public:
- virtual std::string ArchiveURI(std::string File) const APT_OVERRIDE;
- virtual std::string Describe(bool Short = false) const APT_OVERRIDE;
+ virtual std::string Describe(bool const /*Short*/ = false) const APT_OVERRIDE;
virtual bool Exists() const APT_OVERRIDE;
virtual unsigned long Size() const APT_OVERRIDE;
+ virtual std::string ArchiveURI(std::string const &/*File*/) const APT_OVERRIDE;
- pkgIndexTargetFile(IndexTarget const &Target, bool const Trusted);
- virtual ~pkgIndexTargetFile();
+ pkgDebianIndexRealFile(std::string const &File, bool const Trusted);
+ virtual ~pkgDebianIndexRealFile();
};
#endif