X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/bd5f39b34cc0e8cebbe9103f569d4d903e75bd2b..d9fe7642e735a5c264fbd301861aa3d24f36ec33:/apt-pkg/install-progress.h diff --git a/apt-pkg/install-progress.h b/apt-pkg/install-progress.h index 050954bb5..4b7590983 100644 --- a/apt-pkg/install-progress.h +++ b/apt-pkg/install-progress.h @@ -3,7 +3,7 @@ #include #include - +#include namespace APT { namespace Progress { @@ -27,9 +27,15 @@ namespace Progress { : percentage(0.0), last_reported_progress(-1) {}; virtual ~PackageManager() {}; + /* Global Start/Stop */ virtual void Start() {}; virtual void Stop() {}; + /* When dpkg is invoked (may happen multiple times for each + * install/remove block + */ + virtual void StartDpkg() {}; + virtual pid_t fork() {return fork(); }; virtual void Pulse() {}; @@ -62,7 +68,7 @@ namespace Progress { public: PackageManagerProgressFd(int progress_fd); - virtual void Start(); + virtual void StartDpkg(); virtual void Stop(); virtual bool StatusChanged(std::string PackageName, @@ -91,7 +97,7 @@ namespace Progress { public: PackageManagerProgressDeb822Fd(int progress_fd); - virtual void Start(); + virtual void StartDpkg(); virtual void Stop(); virtual bool StatusChanged(std::string PackageName, @@ -111,11 +117,14 @@ namespace Progress { class PackageManagerFancy : public PackageManager { protected: - int nr_terminal_rows; - void SetupTerminalScrollArea(int nr_rows); + static void SetupTerminalScrollArea(int nr_rows); + static int GetNumberTerminalRows(); + static void HandleSIGWINCH(int); + sighandler_t old_SIGWINCH; public: PackageManagerFancy(); + ~PackageManagerFancy(); virtual void Start(); virtual void Stop(); virtual bool StatusChanged(std::string PackageName,