X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b2e465d6d32d2dc884f58b94acb7e35f671a87fe..6804503b9bd057fae67294bb8ca95c9f10e00194:/ftparchive/writer.h diff --git a/ftparchive/writer.h b/ftparchive/writer.h index a5fb6f52b..ce4c947a9 100644 --- a/ftparchive/writer.h +++ b/ftparchive/writer.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: writer.h,v 1.2 2001/02/20 07:03:18 jgg Exp $ +// $Id: writer.h,v 1.4.2.2 2003/12/26 22:55:43 mdz Exp $ /* ###################################################################### Writer @@ -19,17 +19,24 @@ #include #include +#include +#include +#include #include "cachedb.h" #include "override.h" #include "apt-ftparchive.h" + +using std::string; +using std::cout; +using std::endl; +using std::vector; +using std::map; class FTWScanner { protected: - - char *TmpExt; - const char *Ext[10]; + vector Patterns; const char *OriginalPath; char *RealPath; bool ErrorPrinted; @@ -60,10 +67,12 @@ class FTWScanner virtual bool DoPackage(string FileName) = 0; bool RecursiveScan(string Dir); bool LoadFileList(string BaseDir,string File); + void ClearPatterns() { Patterns.clear(); }; + void AddPattern(string Pattern) { Patterns.push_back(Pattern); }; bool SetExts(string Vals); FTWScanner(); - virtual ~FTWScanner() {delete [] RealPath; delete [] TmpExt;}; + virtual ~FTWScanner() {delete [] RealPath;}; }; class PackagesWriter : public FTWScanner @@ -85,9 +94,11 @@ class PackagesWriter : public FTWScanner struct CacheDB::Stats &Stats; 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); + PackagesWriter(string DB,string Overrides,string ExtOverrides=string()); virtual ~PackagesWriter() {}; }; @@ -133,13 +144,34 @@ class SourcesWriter : public FTWScanner FILE *Output; struct CacheDB::Stats Stats; -/* inline bool ReadBinOverride(string File) {return BOver.ReadOverride(File);}; - bool ReadSrcOverride(string File); // {return BOver.ReadOverride(File);};*/ virtual bool DoPackage(string FileName); - SourcesWriter(string BOverrides,string SOverrides); + SourcesWriter(string BOverrides,string SOverrides, + string ExtOverrides=string()); virtual ~SourcesWriter() {free(Buffer);}; }; +class ReleaseWriter : public FTWScanner +{ +public: + ReleaseWriter(string DB); + virtual bool DoPackage(string FileName); + void Finish(); + + FILE *Output; + // General options + string PathPrefix; + string DirStrip; + +protected: + struct CheckSum + { + string MD5; + string SHA1; + // Limited by FileFd::Size() + unsigned long size; + }; + map CheckSums; +}; #endif