cdrom.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef PKGLIB_CDROM_H
  2. #define PKGLIB_CDROM_H
  3. #include<apt-pkg/init.h>
  4. #include<string>
  5. #include<vector>
  6. using namespace std;
  7. class pkgCdromStatus
  8. {
  9. protected:
  10. int totalSteps;
  11. public:
  12. pkgCdromStatus() {};
  13. virtual ~pkgCdromStatus() {};
  14. // total steps
  15. virtual void SetTotal(int total) { totalSteps = total; };
  16. // update steps, will be called regularly as a "pulse"
  17. virtual void Update(string text="", int current=0) = 0;
  18. // ask for cdrom insert
  19. virtual bool ChangeCdrom() = 0;
  20. // ask for cdrom name
  21. virtual bool AskCdromName(string &Name) = 0;
  22. // Progress indicator for the Index rewriter
  23. virtual OpProgress* GetOpProgress() {return NULL; };
  24. };
  25. class pkgCdrom
  26. {
  27. protected:
  28. enum {
  29. STEP_PREPARE = 1,
  30. STEP_UNMOUNT,
  31. STEP_WAIT,
  32. STEP_MOUNT,
  33. STEP_IDENT,
  34. STEP_SCAN,
  35. STEP_COPY,
  36. STEP_WRITE,
  37. STEP_UNMOUNT3,
  38. STEP_LAST
  39. };
  40. bool FindPackages(string CD,vector<string> &List,
  41. vector<string> &SList, vector<string> &SigList,
  42. string &InfoDir, pkgCdromStatus *log,
  43. unsigned int Depth = 0);
  44. bool DropBinaryArch(vector<string> &List);
  45. bool DropRepeats(vector<string> &List,const char *Name);
  46. void ReduceSourcelist(string CD,vector<string> &List);
  47. bool WriteDatabase(Configuration &Cnf);
  48. bool WriteSourceList(string Name,vector<string> &List,bool Source);
  49. int Score(string Path);
  50. public:
  51. bool Ident(string &ident, pkgCdromStatus *log);
  52. bool Add(pkgCdromStatus *log);
  53. };
  54. #endif