diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2005-02-08 15:33:23 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2005-02-08 15:33:23 +0000 |
commit | 8501516a89c1f333f7bc3866b05b5ce7fbf4e177 (patch) | |
tree | 023d64f1d1a53e9657e32e2a54664bf2beed9ede /apt-pkg/cdrom.h | |
parent | d3fbe3fe7968190312c953ee7ba0c567be33ef09 (diff) | |
parent | 8a57929175a93466c83a8e697ad876b60b2eb3c2 (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/cdrom.h')
-rw-r--r-- | apt-pkg/cdrom.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h new file mode 100644 index 000000000..085eb64e2 --- /dev/null +++ b/apt-pkg/cdrom.h @@ -0,0 +1,71 @@ +#ifndef PKGLIB_CDROM_H +#define PKGLIB_CDROM_H + +#include<apt-pkg/init.h> +#include<string> +#include<vector> + +#ifdef __GNUG__ +#pragma interface "apt-pkg/cdrom.h" +#endif + +using namespace std; + +class pkgCdromStatus +{ + protected: + int totalSteps; + + public: + pkgCdromStatus() {}; + virtual ~pkgCdromStatus() {}; + + // total steps + virtual void SetTotal(int total) { totalSteps = total; }; + // update steps, will be called regularly as a "pulse" + virtual void Update(string text="", int current=0) = 0; + + // ask for cdrom insert + virtual bool ChangeCdrom() = 0; + // ask for cdrom name + virtual bool AskCdromName(string &Name) = 0; + // Progress indicator for the Index rewriter + virtual OpProgress* GetOpProgress() {return NULL; }; +}; + +class pkgCdrom +{ + protected: + enum { + STEP_PREPARE = 1, + STEP_UNMOUNT, + STEP_WAIT, + STEP_MOUNT, + STEP_IDENT, + STEP_SCAN, + STEP_COPY, + STEP_WRITE, + STEP_UNMOUNT3, + STEP_LAST + }; + + + bool FindPackages(string CD,vector<string> &List, + vector<string> &SList, vector<string> &SigList, + string &InfoDir, pkgCdromStatus *log, + unsigned int Depth = 0); + bool DropBinaryArch(vector<string> &List); + bool DropRepeats(vector<string> &List,const char *Name); + void ReduceSourcelist(string CD,vector<string> &List); + bool WriteDatabase(Configuration &Cnf); + bool WriteSourceList(string Name,vector<string> &List,bool Source); + int Score(string Path); + + public: + bool Ident(string &ident, pkgCdromStatus *log); + bool Add(pkgCdromStatus *log); +}; + + + +#endif |