]> git.saurik.com Git - apt.git/blob - apt-pkg/iprogress.h
f097e09432b271d9daa79f35d72e2ab4f8184ff5
[apt.git] / apt-pkg / iprogress.h
1 #ifndef PKGLIB_IPROGRESS_H
2 #define PKGLIB_IPROGRSS_H
3
4
5 #include <apt-pkg/packagemanager.h>
6
7 namespace APT {
8 namespace Progress {
9
10
11 class PackageManager
12 {
13 private:
14 /** \brief dpointer placeholder */
15 void *d;
16
17 public:
18 virtual ~PackageManager() {};
19
20 virtual void Started() {};
21 virtual void Finished() {};
22
23 virtual void StatusChanged(std::string PackageName,
24 unsigned int StepsDone,
25 unsigned int TotalSteps) {};
26 };
27
28 class PackageManagerFancy : public PackageManager
29 {
30 protected:
31 int last_reported_progress;
32 int nr_terminal_rows;
33 void SetupTerminalScrollArea(int nr_rows);
34
35 public:
36 PackageManagerFancy();
37 virtual void Started();
38 virtual void Finished();
39 virtual void StatusChanged(std::string PackageName,
40 unsigned int StepsDone,
41 unsigned int TotalSteps);
42 };
43
44 class PackageManagerText : public PackageManager
45 {
46 protected:
47 int last_reported_progress;
48
49 public:
50 PackageManagerText() : last_reported_progress(0) {};
51 virtual void StatusChanged(std::string PackageName,
52 unsigned int StepsDone,
53 unsigned int TotalSteps);
54
55 };
56
57
58 }; // namespace Progress
59 }; // namespace APT
60
61 #endif