X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/989539655e3bb8e6934b5f69ece67c173a26c4f2..859110cdec2f211beb45305134d095fd8926d552:/ftparchive/writer.h diff --git a/ftparchive/writer.h b/ftparchive/writer.h index 6f728dd1b..a4e4356f9 100644 --- a/ftparchive/writer.h +++ b/ftparchive/writer.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: writer.h,v 1.5 2003/12/26 20:08:56 mdz Exp $ +// $Id: writer.h,v 1.4.2.2 2003/12/26 22:55:43 mdz Exp $ /* ###################################################################### Writer @@ -13,14 +13,12 @@ #ifndef WRITER_H #define WRITER_H -#ifdef __GNUG__ -#pragma interface "writer.h" -#endif #include #include #include #include +#include #include "cachedb.h" #include "override.h" @@ -30,6 +28,7 @@ using std::string; using std::cout; using std::endl; using std::vector; +using std::map; class FTWScanner { @@ -43,10 +42,11 @@ class FTWScanner bool NoLinkAct; static FTWScanner *Owner; - static int Scanner(const char *File,const struct stat *sb,int Flag); + static int ScannerFTW(const char *File,const struct stat *sb,int Flag); + static int ScannerFile(const char *File, bool ReadLink); bool Delink(string &FileName,const char *OriginalPath, - unsigned long &Bytes,struct stat &St); + unsigned long &Bytes,off_t FileSize); inline void NewLine(unsigned Priority) { @@ -65,8 +65,8 @@ class FTWScanner virtual bool DoPackage(string FileName) = 0; bool RecursiveScan(string Dir); bool LoadFileList(string BaseDir,string File); - bool ClearPatterns() { Patterns.clear(); }; - bool AddPattern(string Pattern) { Patterns.push_back(Pattern); }; + void ClearPatterns() { Patterns.clear(); }; + void AddPattern(string Pattern) { Patterns.push_back(Pattern); }; bool SetExts(string Vals); FTWScanner(); @@ -82,6 +82,8 @@ class PackagesWriter : public FTWScanner // Some flags bool DoMD5; + bool DoSHA1; + bool DoSHA256; bool NoOverride; bool DoContents; @@ -90,13 +92,15 @@ class PackagesWriter : public FTWScanner string DirStrip; FILE *Output; struct CacheDB::Stats &Stats; - + string Arch; + inline bool ReadOverride(string File) {return Over.ReadOverride(File);}; inline bool ReadExtraOverride(string File) {return Over.ReadExtraOverride(File);}; virtual bool DoPackage(string FileName); - PackagesWriter(string DB,string Overrides,string ExtOverrides=string()); + PackagesWriter(string DB,string Overrides,string ExtOverrides=string(), + string Arch=string()); virtual ~PackagesWriter() {}; }; @@ -154,11 +158,24 @@ class ReleaseWriter : public FTWScanner public: ReleaseWriter(string DB); virtual bool DoPackage(string FileName); -protected: + void Finish(); + + FILE *Output; // General options string PathPrefix; string DirStrip; - FILE *Output; + +protected: + struct CheckSum + { + string MD5; + string SHA1; + string SHA256; + // Limited by FileFd::Size() + unsigned long size; + ~CheckSum() {}; + }; + map CheckSums; }; #endif