16 using TimePoint = std::chrono::time_point<std::chrono::steady_clock>;
18 std::string s, lastLine, phase;
21 uint64_t expected = 0;
24 std::map<ActivityType, uint64_t> expectedByType;
27 std::optional<std::string> name;
33 std::map<ActivityId, std::list<ActInfo>::iterator> its;
35 uint64_t expected = 0;
41 std::list<ActInfo> activities;
42 std::map<ActivityId, std::list<ActInfo>::iterator> its;
44 std::map<ActivityType, ActivitiesByType> activitiesByType;
48 uint64_t filesLinked = 0, bytesLinked = 0;
50 uint64_t corruptedPaths = 0, untrustedPaths = 0;
53 bool haveUpdate =
false;
58 std::thread updateThread;
60 std::condition_variable quitCV, updateCV;
62 bool printBuildLogs =
false;
63 bool printMultiline =
false;
66 ProgressBar(
bool isTTY);
70 void pause()
override;
72 void resetProgress()
override;
74 void resume()
override;
76 bool isVerbose()
override;
78 void log(Verbosity lvl, std::string_view s)
override;
80 void logEI(
const ErrorInfo & ei)
override;
82 void log(
State & state, Verbosity lvl, std::string_view s);
88 const std::string & s,
89 const Fields & fields,
95 void stopActivity(ActivityId act)
override;
97 void result(ActivityId act,
ResultType type,
const std::vector<Field> & fields)
override;
99 void update(
State & state);
101 std::string getStatus(
State & state);
103 void writeToStdout(std::string_view s)
override;
105 std::optional<char> ask(std::string_view msg)
override;
107 void setPrintBuildLogs(
bool printBuildLogs)
override;
109 void setPrintMultiline(
bool printMultiline)
override;
112 void eraseProgressDisplay(
State & state);
114 std::chrono::milliseconds restoreProgressDisplay(
State & state);