summaryrefslogtreecommitdiff
path: root/apt-pkg/indexcopy.h
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2005-02-08 15:33:23 +0000
committerMichael Vogt <michael.vogt@ubuntu.com>2005-02-08 15:33:23 +0000
commit8501516a89c1f333f7bc3866b05b5ce7fbf4e177 (patch)
tree023d64f1d1a53e9657e32e2a54664bf2beed9ede /apt-pkg/indexcopy.h
parentd3fbe3fe7968190312c953ee7ba0c567be33ef09 (diff)
parent8a57929175a93466c83a8e697ad876b60b2eb3c2 (diff)
* merged with matt's tree
Patches applied: * apt@packages.debian.org/apt--main--0--patch-52 0.6.31 * apt@packages.debian.org/apt--main--0--patch-53 Remove debugging from apt.cron.daily * apt@packages.debian.org/apt--main--0--patch-54 allow SHA1Summation to process a file descriptor until EOF * apt@packages.debian.org/apt--main--0--patch-55 Fix syntax in sha1.cc * apt@packages.debian.org/apt--main--0--patch-56 Fix build/install of Polish offline documentation * apt@packages.debian.org/apt--main--0--patch-57 Move CD-ROM handling backend into libapt-pkg * apt@packages.debian.org/apt--main--0--patch-58 Fix compilation errors from apt--auth-cdrom--0 * michael.vogt@ubuntu.com--2005/apt--auth-cdrom--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-51 * michael.vogt@ubuntu.com--2005/apt--auth-cdrom--0--patch-1 * added support for signed cdroms * michael.vogt@ubuntu.com--2005/apt--auth-cdrom--0--patch-2 * merged with apt--main, seperated cmdline/apt-cdrom.cc into a library (apt-pkg/cdrom.{cc,h}) * michael.vogt@ubuntu.com--2005/apt--auth-cdrom--0--patch-3 * cleaned up the cmdline/apt-cdrom.cc code
Diffstat (limited to 'apt-pkg/indexcopy.h')
-rw-r--r--apt-pkg/indexcopy.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/apt-pkg/indexcopy.h b/apt-pkg/indexcopy.h
new file mode 100644
index 000000000..fa8e9c156
--- /dev/null
+++ b/apt-pkg/indexcopy.h
@@ -0,0 +1,83 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/
+// $Id: indexcopy.h,v 1.3 2001/05/27 04:46:54 jgg Exp $
+/* ######################################################################
+
+ Index Copying - Aid for copying and verifying the index files
+
+ ##################################################################### */
+ /*}}}*/
+#ifndef INDEXCOPY_H
+#define INDEXCOPY_H
+
+#include <vector>
+#include <string>
+#include <stdio.h>
+
+using std::string;
+using std::vector;
+
+class pkgTagSection;
+class FileFd;
+class indexRecords;
+class pkgCdromStatus;
+
+class IndexCopy
+{
+ 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;
+ virtual const char *GetFileName() = 0;
+ virtual const char *Type() = 0;
+
+ public:
+
+ bool CopyPackages(string CDROM,string Name,vector<string> &List,
+ pkgCdromStatus *log);
+};
+
+class PackageCopy : public IndexCopy
+{
+ protected:
+
+ virtual bool GetFile(string &Filename,unsigned long &Size);
+ virtual bool RewriteEntry(FILE *Target,string File);
+ virtual const char *GetFileName() {return "Packages";};
+ virtual const char *Type() {return "Package";};
+
+ public:
+};
+
+class SourceCopy : public IndexCopy
+{
+ protected:
+
+ virtual bool GetFile(string &Filename,unsigned long &Size);
+ virtual bool RewriteEntry(FILE *Target,string File);
+ virtual const char *GetFileName() {return "Sources";};
+ virtual const char *Type() {return "Source";};
+
+ public:
+};
+
+class SigVerify
+{
+ bool Verify(string prefix,string file, indexRecords *records);
+ bool CopyMetaIndex(string CDROM, string CDName,
+ string prefix, string file);
+
+ public:
+ bool CopyAndVerify(string CDROM,string Name,vector<string> &SigList,
+ vector<string> PkgList,vector<string> SrcList);
+};
+
+#endif