Commit | Line | Data |
---|---|---|
688f2f5b NK |
1 | #include "../cache.h" |
2 | #include "progress.h" | |
3 | ||
4d3001fd | 4 | static void null_progress__update(struct ui_progress *p __maybe_unused) |
688f2f5b NK |
5 | { |
6 | } | |
7 | ||
4779a2e9 | 8 | static struct ui_progress_ops null_progress__ops = |
688f2f5b | 9 | { |
4779a2e9 | 10 | .update = null_progress__update, |
688f2f5b NK |
11 | }; |
12 | ||
4779a2e9 | 13 | struct ui_progress_ops *ui_progress__ops = &null_progress__ops; |
688f2f5b | 14 | |
4d3001fd | 15 | void ui_progress__update(struct ui_progress *p, u64 adv) |
688f2f5b | 16 | { |
4d3001fd ACM |
17 | p->curr += adv; |
18 | ||
19 | if (p->curr >= p->next) { | |
20 | p->next += p->step; | |
21 | ui_progress__ops->update(p); | |
22 | } | |
23 | } | |
24 | ||
25 | void ui_progress__init(struct ui_progress *p, u64 total, const char *title) | |
26 | { | |
27 | p->curr = 0; | |
28 | p->next = p->step = total / 16; | |
29 | p->total = total; | |
30 | p->title = title; | |
31 | ||
688f2f5b | 32 | } |
a5580f3e NK |
33 | |
34 | void ui_progress__finish(void) | |
35 | { | |
4779a2e9 ACM |
36 | if (ui_progress__ops->finish) |
37 | ui_progress__ops->finish(); | |
a5580f3e | 38 | } |