summaryrefslogtreecommitdiff
path: root/src/buildtool/progress_reporting
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/progress_reporting')
-rw-r--r--src/buildtool/progress_reporting/TARGETS10
-rw-r--r--src/buildtool/progress_reporting/progress.hpp5
-rw-r--r--src/buildtool/progress_reporting/progress_reporter.cpp22
-rw-r--r--src/buildtool/progress_reporting/progress_reporter.hpp8
4 files changed, 22 insertions, 23 deletions
diff --git a/src/buildtool/progress_reporting/TARGETS b/src/buildtool/progress_reporting/TARGETS
index 45c3db1c..6a00bcdc 100644
--- a/src/buildtool/progress_reporting/TARGETS
+++ b/src/buildtool/progress_reporting/TARGETS
@@ -24,14 +24,14 @@
, "hdrs": ["progress_reporter.hpp"]
, "srcs": ["progress_reporter.cpp"]
, "stage": ["src", "buildtool", "progress_reporting"]
- , "deps": ["base_progress_reporter"]
- , "private-deps":
- [ "progress"
- , ["@", "fmt", "", "fmt"]
+ , "deps":
+ [ "base_progress_reporter"
+ , "progress"
, ["@", "gsl", "", "gsl"]
, ["src/buildtool/common", "common"]
- , ["src/buildtool/logging", "logging"]
]
+ , "private-deps":
+ [["@", "fmt", "", "fmt"], ["src/buildtool/logging", "logging"]]
}
, "base_progress_reporter":
{ "type": ["@", "rules", "CC", "library"]
diff --git a/src/buildtool/progress_reporting/progress.hpp b/src/buildtool/progress_reporting/progress.hpp
index 43cdc7cc..d9b3aa8e 100644
--- a/src/buildtool/progress_reporting/progress.hpp
+++ b/src/buildtool/progress_reporting/progress.hpp
@@ -26,11 +26,6 @@
class Progress {
public:
- [[nodiscard]] static auto Instance() noexcept -> Progress& {
- static Progress instance{};
- return instance;
- }
-
[[nodiscard]] auto TaskTracker() noexcept -> TaskTracker& {
return task_tracker_;
}
diff --git a/src/buildtool/progress_reporting/progress_reporter.cpp b/src/buildtool/progress_reporting/progress_reporter.cpp
index 86ec0c0e..27960172 100644
--- a/src/buildtool/progress_reporting/progress_reporter.cpp
+++ b/src/buildtool/progress_reporting/progress_reporter.cpp
@@ -17,25 +17,23 @@
#include <string>
#include "fmt/core.h"
-#include "gsl/gsl"
-#include "src/buildtool/common/statistics.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
-#include "src/buildtool/progress_reporting/progress.hpp"
-auto ProgressReporter::Reporter() noexcept -> progress_reporter_t {
- return BaseProgressReporter::Reporter([]() {
- int total = gsl::narrow<int>(Progress::Instance().OriginMap().size());
+auto ProgressReporter::Reporter(
+ gsl::not_null<Statistics*> const& stats,
+ gsl::not_null<Progress*> const& progress) noexcept -> progress_reporter_t {
+ return BaseProgressReporter::Reporter([stats, progress]() {
+ int total = gsl::narrow<int>(progress->OriginMap().size());
// Note: order matters; queued has to be queried last
- auto const& sample = Progress::Instance().TaskTracker().Sample();
- auto const& stats = Statistics::Instance();
- int cached = stats.ActionsCachedCounter();
- int run = stats.ActionsExecutedCounter();
- int queued = stats.ActionsQueuedCounter();
+ auto const& sample = progress->TaskTracker().Sample();
+ int cached = stats->ActionsCachedCounter();
+ int run = stats->ActionsExecutedCounter();
+ int queued = stats->ActionsQueuedCounter();
int active = queued - run - cached;
std::string now_msg;
if (active > 0 and !sample.empty()) {
- auto const& origin_map = Progress::Instance().OriginMap();
+ auto const& origin_map = progress->OriginMap();
auto origins = origin_map.find(sample);
if (origins != origin_map.end() and !origins->second.empty()) {
auto const& origin = origins->second[0];
diff --git a/src/buildtool/progress_reporting/progress_reporter.hpp b/src/buildtool/progress_reporting/progress_reporter.hpp
index 5323578f..1c4206de 100644
--- a/src/buildtool/progress_reporting/progress_reporter.hpp
+++ b/src/buildtool/progress_reporting/progress_reporter.hpp
@@ -15,11 +15,17 @@
#ifndef INCLUDED_SRC_BUILDTOOL_PROGRESS_REPORTING_PROGRESS_REPORTER_HPP
#define INCLUDED_SRC_BUILDTOOL_PROGRESS_REPORTING_PROGRESS_REPORTER_HPP
+#include "gsl/gsl"
+#include "src/buildtool/common/statistics.hpp"
#include "src/buildtool/progress_reporting/base_progress_reporter.hpp"
+#include "src/buildtool/progress_reporting/progress.hpp"
class ProgressReporter {
public:
- [[nodiscard]] static auto Reporter() noexcept -> progress_reporter_t;
+ [[nodiscard]] static auto Reporter(
+ gsl::not_null<Statistics*> const& stats,
+ gsl::not_null<Progress*> const& progress) noexcept
+ -> progress_reporter_t;
};
#endif // INCLUDED_SRC_BUILDTOOL_PROGRESS_REPORTING_PROGRESS_REPORTER_HPP