X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/a345a69945548525d5219fcd18e3754f4d252bfd..0fffbc8ce4cb6357f59db63db5571f46a668a66b:/apt-pkg/indexcopy.h diff --git a/apt-pkg/indexcopy.h b/apt-pkg/indexcopy.h index 7778ae595..21294ae7e 100644 --- a/apt-pkg/indexcopy.h +++ b/apt-pkg/indexcopy.h @@ -14,84 +14,92 @@ #include #include -using std::string; -using std::vector; - class pkgTagSection; class FileFd; class indexRecords; class pkgCdromStatus; -class IndexCopy +class IndexCopy /*{{{*/ { + /** \brief dpointer placeholder (for later in case we need it) */ + void *d; + protected: pkgTagSection *Section; - string ChopDirs(string Path,unsigned int Depth); - bool ReconstructPrefix(string &Prefix,string OrigPath,string CD, - string File); - bool ReconstructChop(unsigned long &Chop,string Dir,string File); - void ConvertToSourceList(string CD,string &Path); - bool GrabFirst(string Path,string &To,unsigned int Depth); - virtual bool GetFile(string &Filename,unsigned long &Size) = 0; - virtual bool RewriteEntry(FILE *Target,string File) = 0; + std::string ChopDirs(std::string Path,unsigned int Depth); + bool ReconstructPrefix(std::string &Prefix,std::string OrigPath,std::string CD, + std::string File); + bool ReconstructChop(unsigned long &Chop,std::string Dir,std::string File); + void ConvertToSourceList(std::string CD,std::string &Path); + bool GrabFirst(std::string Path,std::string &To,unsigned int Depth); + virtual bool GetFile(std::string &Filename,unsigned long long &Size) = 0; + virtual bool RewriteEntry(FILE *Target,std::string File) = 0; virtual const char *GetFileName() = 0; virtual const char *Type() = 0; public: - bool CopyPackages(string CDROM,string Name,vector &List, + bool CopyPackages(std::string CDROM,std::string Name,std::vector &List, pkgCdromStatus *log); virtual ~IndexCopy() {}; }; - -class PackageCopy : public IndexCopy + /*}}}*/ +class PackageCopy : public IndexCopy /*{{{*/ { protected: - virtual bool GetFile(string &Filename,unsigned long &Size); - virtual bool RewriteEntry(FILE *Target,string File); + virtual bool GetFile(std::string &Filename,unsigned long long &Size); + virtual bool RewriteEntry(FILE *Target,std::string File); virtual const char *GetFileName() {return "Packages";}; virtual const char *Type() {return "Package";}; - public: }; - -class SourceCopy : public IndexCopy + /*}}}*/ +class SourceCopy : public IndexCopy /*{{{*/ { protected: - virtual bool GetFile(string &Filename,unsigned long &Size); - virtual bool RewriteEntry(FILE *Target,string File); + virtual bool GetFile(std::string &Filename,unsigned long long &Size); + virtual bool RewriteEntry(FILE *Target,std::string File); virtual const char *GetFileName() {return "Sources";}; virtual const char *Type() {return "Source";}; - public: }; - -class TranslationsCopy + /*}}}*/ +class TranslationsCopy /*{{{*/ { protected: pkgTagSection *Section; public: - bool CopyTranslations(string CDROM,string Name,vector &List, + bool CopyTranslations(std::string CDROM,std::string Name,std::vector &List, pkgCdromStatus *log); }; - - -class SigVerify + /*}}}*/ +class SigVerify /*{{{*/ { - bool Verify(string prefix,string file, indexRecords *records); - bool CopyMetaIndex(string CDROM, string CDName, - string prefix, string file); + /** \brief dpointer placeholder (for later in case we need it) */ + void *d; + + bool Verify(std::string prefix,std::string file, indexRecords *records); + bool CopyMetaIndex(std::string CDROM, std::string CDName, + std::string prefix, std::string file); public: - bool CopyAndVerify(string CDROM,string Name,vector &SigList, - vector PkgList,vector SrcList); + bool CopyAndVerify(std::string CDROM,std::string Name,std::vector &SigList, + std::vector PkgList,std::vector SrcList); + + /** \brief generates and run the command to verify a file with gpgv */ + static bool RunGPGV(std::string const &File, std::string const &FileOut, + int const &statusfd, int fd[2]); + inline static bool RunGPGV(std::string const &File, std::string const &FileOut, + int const &statusfd = -1) { + int fd[2]; + return RunGPGV(File, FileOut, statusfd, fd); + }; }; - - + /*}}}*/ #endif