summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/progress_reporting/statistics.hpp
diff options
context:
space:
mode:
authorPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2024-03-11 16:52:52 +0100
committerPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2024-03-12 11:17:24 +0100
commit87eb89d8d3b28d7e9da26199654ec3be8ee59565 (patch)
treefda16f2a8bb0bc2027f3982184de451944009a3e /src/buildtool/serve_api/progress_reporting/statistics.hpp
parentddec2bec51739cb4051cee091a105ff7b3649702 (diff)
downloadjustbuild-87eb89d8d3b28d7e9da26199654ec3be8ee59565.tar.gz
just serve: Improve progress reporting
During analysis it is useful to track and report the progress for all export targets. This is not exclusively linked to a serve endpoint being present, despite most of the time being expected to be spent in export targets being served from the remote endpoint. This commit refactors the current implementation to give proper feedback to the user on the progress of the analysis phase.
Diffstat (limited to 'src/buildtool/serve_api/progress_reporting/statistics.hpp')
-rw-r--r--src/buildtool/serve_api/progress_reporting/statistics.hpp55
1 files changed, 0 insertions, 55 deletions
diff --git a/src/buildtool/serve_api/progress_reporting/statistics.hpp b/src/buildtool/serve_api/progress_reporting/statistics.hpp
deleted file mode 100644
index 6c1aa352..00000000
--- a/src/buildtool/serve_api/progress_reporting/statistics.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2023 Huawei Cloud Computing Technology Co., Ltd.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef INCLUDED_SRC_BUILDTOOL_SERVE_API_PROGRESS_REPORTING_STATISTICS_HPP
-#define INCLUDED_SRC_BUILDTOOL_SERVE_API_PROGRESS_REPORTING_STATISTICS_HPP
-
-#include <atomic>
-
-class ServeServiceStatistics {
- public:
- [[nodiscard]] static auto Instance() noexcept -> ServeServiceStatistics& {
- static ServeServiceStatistics instance{};
- return instance;
- }
-
- void Reset() noexcept {
- num_cache_hits_ = 0;
- num_dispatched_ = 0;
- num_served_ = 0;
- }
- void IncrementCacheHitsCounter() noexcept { ++num_cache_hits_; }
- void IncrementDispatchedCounter() noexcept { ++num_dispatched_; }
- void IncrementServedCounter() noexcept { ++num_served_; }
-
- [[nodiscard]] auto CacheHitsCounter() const noexcept -> int {
- return num_cache_hits_;
- }
- [[nodiscard]] auto DispatchedCounter() const noexcept -> int {
- return num_dispatched_;
- }
- [[nodiscard]] auto ServedCounter() const noexcept -> int {
- return num_served_;
- }
-
- private:
- // locally cached export targets
- std::atomic<int> num_cache_hits_{};
- // export targets for which we have queried just serve
- std::atomic<int> num_dispatched_{};
- // export targets for which just serve responded
- std::atomic<int> num_served_{};
-};
-
-#endif // INCLUDED_SRC_BUILDTOOL_SERVE_API_PROGRESS_REPORTING_STATISTICS_HPP