123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- // -*- 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 <apt-pkg/indexfile.h>
- #include <apt-pkg/cacheiterators.h>
- #include <apt-pkg/pkgcache.h>
- #include <apt-pkg/srcrecords.h>
- #include <string>
- class OpProgress;
- class pkgAcquire;
- class pkgCacheGenerator;
- class debStatusIndex : public pkgDebianIndexRealFile
- {
- void * const d;
- protected:
- virtual std::string GetArchitecture() const APT_OVERRIDE;
- virtual std::string GetComponent() const APT_OVERRIDE;
- virtual uint8_t GetIndexFlags() const APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE APT_CONST;
- // Interface for the Cache Generator
- virtual bool HasPackages() const APT_OVERRIDE {return true;};
- // Abort if the file does not exist.
- virtual bool Exists() const APT_OVERRIDE {return true;};
- virtual pkgCacheListParser * CreateListParser(FileFd &Pkg) APT_OVERRIDE;
- debStatusIndex(std::string const &File);
- virtual ~debStatusIndex();
- };
- class debPackagesIndex : public pkgDebianIndexTargetFile
- {
- void * const d;
- protected:
- virtual uint8_t GetIndexFlags() const APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE APT_CONST;
- // Stuff for accessing files on remote items
- virtual std::string ArchiveInfo(pkgCache::VerIterator const &Ver) const APT_OVERRIDE;
- // Interface for the Cache Generator
- virtual bool HasPackages() const APT_OVERRIDE {return true;};
- debPackagesIndex(IndexTarget const &Target, bool const Trusted);
- virtual ~debPackagesIndex();
- };
- class debTranslationsIndex : public pkgDebianIndexTargetFile
- {
- void * const d;
- protected:
- virtual std::string GetArchitecture() const APT_OVERRIDE;
- virtual uint8_t GetIndexFlags() const APT_OVERRIDE;
- virtual bool OpenListFile(FileFd &Pkg, std::string const &FileName) APT_OVERRIDE;
- APT_HIDDEN virtual pkgCacheListParser * CreateListParser(FileFd &Pkg) APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE APT_CONST;
- // Interface for the Cache Generator
- virtual bool HasPackages() const APT_OVERRIDE;
- debTranslationsIndex(IndexTarget const &Target);
- virtual ~debTranslationsIndex();
- };
- class debSourcesIndex : public pkgDebianIndexTargetFile
- {
- void * const d;
- virtual uint8_t GetIndexFlags() const APT_OVERRIDE;
- virtual bool OpenListFile(FileFd &Pkg, std::string const &FileName) APT_OVERRIDE;
- APT_HIDDEN virtual pkgCacheListParser * CreateListParser(FileFd &Pkg) APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE 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 debDebPkgFileIndex : public pkgDebianIndexRealFile
- {
- void * const d;
- std::string DebFile;
- protected:
- virtual std::string GetComponent() const APT_OVERRIDE;
- virtual std::string GetArchitecture() const APT_OVERRIDE;
- virtual uint8_t GetIndexFlags() const APT_OVERRIDE;
- virtual bool OpenListFile(FileFd &Pkg, std::string const &FileName) APT_OVERRIDE;
- APT_HIDDEN virtual pkgCacheListParser * CreateListParser(FileFd &Pkg) APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE APT_CONST;
- /** 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 HasPackages() const APT_OVERRIDE {return true;}
- virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const APT_OVERRIDE;
- // Interface for acquire
- debDebPkgFileIndex(std::string const &DebFile);
- virtual ~debDebPkgFileIndex();
- //FIXME: use proper virtual-handling on next ABI break
- APT_HIDDEN std::string ArchiveInfo_impl(pkgCache::VerIterator const &Ver) const;
- };
- class debDscFileIndex : public pkgDebianIndexRealFile
- {
- void * const d;
- protected:
- virtual std::string GetComponent() const APT_OVERRIDE;
- virtual std::string GetArchitecture() const APT_OVERRIDE;
- virtual uint8_t GetIndexFlags() const APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE APT_CONST;
- virtual pkgSrcRecords::Parser *CreateSrcParser() const APT_OVERRIDE;
- virtual bool HasPackages() const APT_OVERRIDE {return false;};
- debDscFileIndex(std::string const &DscFile);
- virtual ~debDscFileIndex();
- };
- class debDebianSourceDirIndex : public debDscFileIndex
- {
- protected:
- virtual std::string GetComponent() const APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE APT_CONST;
- };
- class debStringPackageIndex : public pkgDebianIndexRealFile
- {
- void * const d;
- protected:
- virtual std::string GetArchitecture() const APT_OVERRIDE;
- virtual std::string GetComponent() const APT_OVERRIDE;
- virtual uint8_t GetIndexFlags() const APT_OVERRIDE;
- public:
- virtual const Type *GetType() const APT_OVERRIDE APT_CONST;
- // Interface for the Cache Generator
- virtual bool HasPackages() const APT_OVERRIDE {return true;};
- // Abort if the file does not exist.
- virtual bool Exists() const APT_OVERRIDE {return true;};
- debStringPackageIndex(std::string const &content);
- virtual ~debStringPackageIndex();
- };
- #endif
|