first iteration of install progress refactor
[ntk/apt.git] / apt-pkg / iprogress.h
CommitLineData
31f97d7b
MV
1#ifndef PKGLIB_IPROGRESS_H
2#define PKGLIB_IPROGRSS_H
3
4
5#include <apt-pkg/packagemanager.h>
6
7namespace APT {
8namespace 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 public:
34 PackageManagerFancy();
35 virtual void Started();
36 virtual void Finished();
37 virtual void StatusChanged(std::string PackageName,
38 unsigned int StepsDone,
39 unsigned int TotalSteps);
40 };
41
42 class PackageManagerText : public PackageManager
43 {
44 protected:
45 int last_reported_progress;
46
47 public:
48 PackageManagerText() : last_reported_progress(0) {};
49 virtual void StatusChanged(std::string PackageName,
50 unsigned int StepsDone,
51 unsigned int TotalSteps);
52
53 };
54
55
56}; // namespace Progress
57}; // namespace APT
58
59#endif