cdrom.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. /*}}}*/
  26. class pkgCdrom /*{{{*/
  27. {
  28. protected:
  29. enum {
  30. STEP_PREPARE = 1,
  31. STEP_UNMOUNT,
  32. STEP_WAIT,
  33. STEP_MOUNT,
  34. STEP_IDENT,
  35. STEP_SCAN,
  36. STEP_COPY,
  37. STEP_WRITE,
  38. STEP_UNMOUNT3,
  39. STEP_LAST
  40. };
  41. bool FindPackages(string CD,
  42. vector<string> &List,
  43. vector<string> &SList,
  44. vector<string> &SigList,
  45. vector<string> &TransList,
  46. string &InfoDir, pkgCdromStatus *log,
  47. unsigned int Depth = 0);
  48. bool DropBinaryArch(vector<string> &List);
  49. bool DropRepeats(vector<string> &List,const char *Name);
  50. void ReduceSourcelist(string CD,vector<string> &List);
  51. bool WriteDatabase(Configuration &Cnf);
  52. bool WriteSourceList(string Name,vector<string> &List,bool Source);
  53. int Score(string Path);
  54. public:
  55. bool Ident(string &ident, pkgCdromStatus *log);
  56. bool Add(pkgCdromStatus *log);
  57. };
  58. /*}}}*/
  59. #endif