// -*- mode: cpp; mode: fold -*- // Description /*{{{*/ /* ###################################################################### Debian Index Files There are three sorts currently Package files that have File: tags Package files that don't (/var/lib/dpkg/status) Source files ##################################################################### */ /*}}}*/ #ifndef PKGLIB_DEBINDEXFILE_H #define PKGLIB_DEBINDEXFILE_H #include #include #include #include #include class OpProgress; class pkgAcquire; class pkgCacheGenerator; class APT_HIDDEN debStatusIndex : public pkgIndexFile { void * const d; protected: std::string File; public: virtual const Type *GetType() const APT_CONST; // Interface for acquire virtual std::string Describe(bool /*Short*/) const APT_OVERRIDE {return File;}; // Interface for the Cache Generator virtual bool Exists() const APT_OVERRIDE; virtual bool HasPackages() const APT_OVERRIDE {return true;}; virtual unsigned long Size() const APT_OVERRIDE; virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const APT_OVERRIDE; virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const APT_OVERRIDE; debStatusIndex(std::string File); virtual ~debStatusIndex(); }; class APT_HIDDEN debPackagesIndex : public pkgIndexTargetFile { void * const d; public: virtual const Type *GetType() const APT_CONST; // Stuff for accessing files on remote items virtual std::string ArchiveInfo(pkgCache::VerIterator Ver) const APT_OVERRIDE; // Interface for the Cache Generator virtual bool HasPackages() const APT_OVERRIDE {return true;}; virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const APT_OVERRIDE; virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const APT_OVERRIDE; debPackagesIndex(IndexTarget const &Target, bool const Trusted); virtual ~debPackagesIndex(); }; class APT_HIDDEN debTranslationsIndex : public pkgIndexTargetFile { void * const d; public: virtual const Type *GetType() const APT_CONST; // Interface for the Cache Generator virtual bool HasPackages() const APT_OVERRIDE; virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const APT_OVERRIDE; virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const APT_OVERRIDE; debTranslationsIndex(IndexTarget const &Target); virtual ~debTranslationsIndex(); }; class APT_HIDDEN debSourcesIndex : public pkgIndexTargetFile { void * const d; public: virtual const Type *GetType() const APT_CONST; // Stuff for accessing files on remote items virtual std::string SourceInfo(pkgSrcRecords::Parser const &Record, pkgSrcRecords::File const &File) const APT_OVERRIDE; // Interface for the record parsers virtual pkgSrcRecords::Parser *CreateSrcParser() const APT_OVERRIDE; // Interface for the Cache Generator virtual bool HasPackages() const APT_OVERRIDE {return false;}; debSourcesIndex(IndexTarget const &Target, bool const Trusted); virtual ~debSourcesIndex(); }; class APT_HIDDEN debDebPkgFileIndex : public pkgIndexFile { private: void * const d; std::string DebFile; std::string DebFileFullPath; public: virtual const Type *GetType() const APT_CONST; virtual std::string Describe(bool /*Short*/) const APT_OVERRIDE { return DebFile; } /** get the control (file) content of the deb file * * @param[out] content of the control file * @param debfile is the filename of the .deb-file * @return \b true if successful, otherwise \b false. */ static bool GetContent(std::ostream &content, std::string const &debfile); // Interface for the Cache Generator virtual bool Exists() const APT_OVERRIDE; virtual bool HasPackages() const APT_OVERRIDE { return true; }; virtual unsigned long Size() const APT_OVERRIDE; virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const APT_OVERRIDE; virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const APT_OVERRIDE; // Interface for acquire virtual std::string ArchiveURI(std::string /*File*/) const APT_OVERRIDE; debDebPkgFileIndex(std::string DebFile); virtual ~debDebPkgFileIndex(); }; class APT_HIDDEN debDscFileIndex : public pkgIndexFile { private: void * const d; std::string DscFile; public: virtual const Type *GetType() const APT_CONST; virtual pkgSrcRecords::Parser *CreateSrcParser() const APT_OVERRIDE; virtual bool Exists() const APT_OVERRIDE; virtual bool HasPackages() const APT_OVERRIDE {return false;}; virtual unsigned long Size() const APT_OVERRIDE; virtual std::string Describe(bool /*Short*/) const APT_OVERRIDE { return DscFile; }; debDscFileIndex(std::string &DscFile); virtual ~debDscFileIndex(); }; class APT_HIDDEN debDebianSourceDirIndex : public debDscFileIndex { public: virtual const Type *GetType() const APT_CONST; }; #endif