This commit is contained in:
Eelco Dolstra
2017-08-28 14:30:35 +02:00
parent 8fff3e7bb5
commit e681b1f064
2 changed files with 14 additions and 18 deletions
+2 -3
View File
@@ -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
+12 -15
View File
@@ -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()