15 using TimePoint = std::chrono::time_point<std::chrono::steady_clock>;
17 std::string s, lastLine, phase;
20 uint64_t expected = 0;
23 std::map<ActivityType, uint64_t> expectedByType;
26 std::optional<std::string> name;
32 std::map<ActivityId, std::list<ActInfo>::iterator> its;
34 uint64_t expected = 0;
40 std::list<ActInfo> activities;
41 std::map<ActivityId, std::list<ActInfo>::iterator> its;
43 std::map<ActivityType, ActivitiesByType> activitiesByType;
47 uint64_t filesLinked = 0, bytesLinked = 0;
49 uint64_t corruptedPaths = 0, untrustedPaths = 0;
52 bool haveUpdate =
false;
57 std::thread updateThread;
59 std::condition_variable quitCV, updateCV;
61 bool printBuildLogs =
false;
62 bool printMultiline =
false;
69 void pause()
override;
71 void resetProgress()
override;
73 void resume()
override;
75 bool isVerbose()
override;
77 void log(Verbosity lvl, std::string_view s)
override;
79 void logEI(
const ErrorInfo & ei)
override;
81 void log(
State & state, Verbosity lvl, std::string_view s);
87 const std::string & s,
88 const Fields & fields,
94 void stopActivity(ActivityId act)
override;
96 void result(ActivityId act,
ResultType type,
const std::vector<Field> & fields)
override;
98 void update(
State & state);
100 std::string getStatus(
State & state);
102 void writeToStdout(std::string_view s)
override;
104 std::optional<char> ask(std::string_view msg)
override;
106 void setPrintBuildLogs(
bool printBuildLogs)
override;
108 void setPrintMultiline(
bool printMultiline)
override;
111 void eraseProgressDisplay(
State & state);
113 std::chrono::milliseconds restoreProgressDisplay(
State & state);