From f9935b1c33203b9e47ca0ff5cb441c7963b19fbc Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 14 Oct 2013 07:40:56 +0200 Subject: refactor writing to WriteToStatusFd() --- apt-pkg/iprogress.cc | 30 ++++++++++++++++-------------- apt-pkg/iprogress.h | 3 +++ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/apt-pkg/iprogress.cc b/apt-pkg/iprogress.cc index 6c5d33d4a..7d1cc6341 100644 --- a/apt-pkg/iprogress.cc +++ b/apt-pkg/iprogress.cc @@ -33,19 +33,24 @@ PackageManagerProgressFd::PackageManagerProgressFd(int progress_fd) OutStatusFd = progress_fd; } +void PackageManagerProgressFd::WriteToStatusFd(std::string s) +{ + if(OutStatusFd <= 0) + return; + FileFd::Write(OutStatusFd, s.c_str(), s.size()); +} + void PackageManagerProgressFd::Started() { _config->Set("APT::Keep-Fds::", OutStatusFd); // send status information that we are about to fork dpkg - if(OutStatusFd > 0) { - std::ostringstream status; - status << "pmstatus:dpkg-exec:" - << (StepsDone/float(StepsTotal)*100.0) - << ":" << _("Running dpkg") - << std::endl; - FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); - } + std::ostringstream status; + status << "pmstatus:dpkg-exec:" + << (StepsDone/float(StepsTotal)*100.0) + << ":" << _("Running dpkg") + << std::endl; + WriteToStatusFd(status.str()); } void PackageManagerProgressFd::Finished() @@ -64,8 +69,7 @@ void PackageManagerProgressFd::Error(std::string PackageName, << ":" << (StepsDone/float(TotalSteps)*100.0) << ":" << ErrorMessage << std::endl; - if(OutStatusFd > 0) - FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); + WriteToStatusFd(status.str()); } void PackageManagerProgressFd::ConffilePrompt(std::string PackageName, @@ -78,8 +82,7 @@ void PackageManagerProgressFd::ConffilePrompt(std::string PackageName, << ":" << (StepsDone/float(TotalSteps)*100.0) << ":" << ConfMessage << std::endl; - if(OutStatusFd > 0) - FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); + WriteToStatusFd(status.str()); } @@ -97,8 +100,7 @@ bool PackageManagerProgressFd::StatusChanged(std::string PackageName, << ":" << (StepsDone/float(StepsTotal)*100.0) << ":" << pkg_action << std::endl; - if(OutStatusFd > 0) - FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); + WriteToStatusFd(status.str()); return true; } diff --git a/apt-pkg/iprogress.h b/apt-pkg/iprogress.h index 04520ffe8..5584b3940 100644 --- a/apt-pkg/iprogress.h +++ b/apt-pkg/iprogress.h @@ -54,9 +54,12 @@ namespace Progress { int OutStatusFd; int StepsDone; int StepsTotal; + void WriteToStatusFd(std::string msg); public: PackageManagerProgressFd(int progress_fd); + + // FIXME: rename to Start/Stop to match the pkgAcquireStatus virtual void Started(); virtual void Finished(); -- cgit v1.2.3