Move CD-ROM handling backend into libapt-pkg
[ntk/apt.git] / apt-pkg / indexcopy.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: indexcopy.h,v 1.3 2001/05/27 04:46:54 jgg Exp $
4 /* ######################################################################
5
6 Index Copying - Aid for copying and verifying the index files
7
8 ##################################################################### */
9 /*}}}*/
10 #ifndef INDEXCOPY_H
11 #define INDEXCOPY_H
12
13 #include <vector>
14 #include <string>
15 #include <stdio.h>
16
17 using std::string;
18 using std::vector;
19
20 class pkgTagSection;
21 class FileFd;
22 class indexRecords;
23 class pkgCdromStatus;
24
25 class IndexCopy
26 {
27 protected:
28
29 pkgTagSection *Section;
30
31 string ChopDirs(string Path,unsigned int Depth);
32 bool ReconstructPrefix(string &Prefix,string OrigPath,string CD,
33 string File);
34 bool ReconstructChop(unsigned long &Chop,string Dir,string File);
35 void ConvertToSourceList(string CD,string &Path);
36 bool GrabFirst(string Path,string &To,unsigned int Depth);
37 virtual bool GetFile(string &Filename,unsigned long &Size) = 0;
38 virtual bool RewriteEntry(FILE *Target,string File) = 0;
39 virtual const char *GetFileName() = 0;
40 virtual const char *Type() = 0;
41
42 public:
43
44 bool CopyPackages(string CDROM,string Name,vector<string> &List,
45 pkgCdromStatus *log);
46 };
47
48 class PackageCopy : public IndexCopy
49 {
50 protected:
51
52 virtual bool GetFile(string &Filename,unsigned long &Size);
53 virtual bool RewriteEntry(FILE *Target,string File);
54 virtual const char *GetFileName() {return "Packages";};
55 virtual const char *Type() {return "Package";};
56
57 public:
58 };
59
60 class SourceCopy : public IndexCopy
61 {
62 protected:
63
64 virtual bool GetFile(string &Filename,unsigned long &Size);
65 virtual bool RewriteEntry(FILE *Target,string File);
66 virtual const char *GetFileName() {return "Sources";};
67 virtual const char *Type() {return "Source";};
68
69 public:
70 };
71
72 class SigVerify
73 {
74 bool Verify(string prefix,string file, indexRecords *records);
75 bool CopyMetaIndex(string CDROM, string CDName,
76 string prefix, string file);
77
78 public:
79 bool CopyAndVerify(string CDROM,string Name,vector<string> &SigList,
80 vector<string> PkgList,vector<string> SrcList);
81 };
82
83 #endif