1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-26 15:51:15 +02:00
This commit is contained in:
Eelco Dolstra 2017-08-25 21:26:37 +02:00
parent 9b845e6936
commit 94a0548dc4
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
3 changed files with 56 additions and 29 deletions

View file

@ -32,6 +32,7 @@ typedef enum {
resUntrustedPath = 102,
resCorruptedPath = 103,
resSetPhase = 104,
resProgress = 105,
} ResultType;
typedef uint64_t ActivityId;
@ -71,8 +72,6 @@ public:
virtual void stopActivity(ActivityId act) { };
virtual void progress(ActivityId act, uint64_t done = 0, uint64_t expected = 0, uint64_t running = 0, uint64_t failed = 0) { };
virtual void setExpected(ActivityId act, ActivityType type, uint64_t expected) { };
virtual void result(ActivityId act, ResultType type, const Fields & fields) { };
@ -95,16 +94,21 @@ struct Activity
{ logger.stopActivity(id); }
void progress(uint64_t done = 0, uint64_t expected = 0, uint64_t running = 0, uint64_t failed = 0) const
{ logger.progress(id, done, expected, running, failed); }
{ result(resProgress, done, expected, running, failed); }
void setExpected(ActivityType type2, uint64_t expected) const
{ logger.setExpected(id, type2, expected); }
template<typename... Args>
void result(ResultType type, const Args & ... args)
void result(ResultType type, const Args & ... args) const
{
Logger::Fields fields;
nop{(fields.emplace_back(Logger::Field(args)), 1)...};
result(type, fields);
}
void result(ResultType type, const Logger::Fields & fields) const
{
logger.result(id, type, fields);
}