diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libutil/logging.hh | 5 | ||||
-rw-r--r-- | src/nix/progress-bar.cc | 27 |
2 files changed, 14 insertions, 18 deletions
diff --git a/src/libutil/logging.hh b/src/libutil/logging.hh index 4b1f3b5f70cf..2ec15cb68d25 100644 --- a/src/libutil/logging.hh +++ b/src/libutil/logging.hh @@ -33,6 +33,7 @@ typedef enum { resCorruptedPath = 103, resSetPhase = 104, resProgress = 105, + resSetExpected = 106, } ResultType; typedef uint64_t ActivityId; @@ -72,8 +73,6 @@ public: virtual void stopActivity(ActivityId act) { }; - virtual void setExpected(ActivityId act, ActivityType type, uint64_t expected) { }; - virtual void result(ActivityId act, ResultType type, const Fields & fields) { }; }; @@ -97,7 +96,7 @@ struct Activity { result(resProgress, done, expected, running, failed); } void setExpected(ActivityType type2, uint64_t expected) const - { logger.setExpected(id, type2, expected); } + { result(resSetExpected, type2, expected); } template<typename... Args> void result(ResultType type, const Args & ... args) const diff --git a/src/nix/progress-bar.cc b/src/nix/progress-bar.cc index 054127f6277e..70dbfd4e5964 100644 --- a/src/nix/progress-bar.cc +++ b/src/nix/progress-bar.cc @@ -192,21 +192,6 @@ public: update(*state); } - void setExpected(ActivityId act, ActivityType type, uint64_t expected) override - { - auto state(state_.lock()); - - auto i = state->its.find(act); - assert(i != state->its.end()); - ActInfo & actInfo = *i->second; - auto & j = actInfo.expectedByType[type]; - state->activitiesByType[type].expected -= j; - j = expected; - state->activitiesByType[type].expected += j; - - update(*state); - } - void result(ActivityId act, ResultType type, const std::vector<Field> & fields) override { auto state(state_.lock()); @@ -258,6 +243,18 @@ public: actInfo.failed = getI(fields, 3); update(*state); } + + else if (type == resSetExpected) { + auto i = state->its.find(act); + assert(i != state->its.end()); + ActInfo & actInfo = *i->second; + auto type = (ActivityType) getI(fields, 0); + auto & j = actInfo.expectedByType[type]; + state->activitiesByType[type].expected -= j; + j = getI(fields, 1); + state->activitiesByType[type].expected += j; + update(*state); + } } void update() |