From 16e5ccf20977c7e8bb8ef99a4bf9e97c42505e90 Mon Sep 17 00:00:00 2001 From: Dimitrios Siganos Date: Tue, 31 Jan 2023 14:58:37 +0000 Subject: [PATCH] Add to_string function to nano::stats class for convenience (#4092) It is useful to be able to print the stats easily from inside a debugging session. --- nano/lib/stats.cpp | 19 +++++++++++++++++++ nano/lib/stats.hpp | 3 +++ 2 files changed, 22 insertions(+) diff --git a/nano/lib/stats.cpp b/nano/lib/stats.cpp index 62e8c5db..25e5e3b0 100644 --- a/nano/lib/stats.cpp +++ b/nano/lib/stats.cpp @@ -456,6 +456,25 @@ void nano::stats::stop () stopped = true; } +std::string nano::stats::to_string (std::string type) +{ + auto sink = log_sink_json (); + if (type == "counters") + { + log_counters (*sink); + return sink->to_string (); + } + else if (type == "samples") + { + log_samples (*sink); + return sink->to_string (); + } + else + { + return "type not supported: " + type; + } +} + void nano::stats::clear () { nano::unique_lock lock{ stat_mutex }; diff --git a/nano/lib/stats.hpp b/nano/lib/stats.hpp index 0b337394..324bdfe8 100644 --- a/nano/lib/stats.hpp +++ b/nano/lib/stats.hpp @@ -397,6 +397,9 @@ public: /** Stop stats being output */ void stop (); + /** Return string showing stats counters (convenience function for debugging) */ + std::string to_string (std::string type = "counters"); + private: static std::string type_to_string (uint32_t key); static std::string dir_to_string (uint32_t key);