From 82108006834bb580378e8d6cd8fb7965facebe9f Mon Sep 17 00:00:00 2001 From: marcelb Date: Sat, 6 Jan 2024 16:08:06 +0100 Subject: [PATCH] Add get_data methodes --- .vscode/settings.json | 6 +++++- lib/metrics.hpp | 11 +++++++++++ src/metrics.cpp | 11 +++++++++++ test/test | Bin 83736 -> 83872 bytes test/test.cpp | 1 + 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3ff8f20..4531e4f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,10 @@ "ostream": "cpp", "string": "cpp", "vector": "cpp", - "map": "cpp" + "map": "cpp", + "*.tcc": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "system_error": "cpp" } } \ No newline at end of file diff --git a/lib/metrics.hpp b/lib/metrics.hpp index c75e279..a580079 100644 --- a/lib/metrics.hpp +++ b/lib/metrics.hpp @@ -54,6 +54,17 @@ class Metrics { */ vector keys(); + /** + * Metoda vraća map svih mjerenja + */ + map get_data(); + + /** + * Metoda vraća map svih mjerenja i resetira brojače + */ + map get_data_and_clear(); + + }; diff --git a/src/metrics.cpp b/src/metrics.cpp index 4bed1d9..bdc0ce6 100644 --- a/src/metrics.cpp +++ b/src/metrics.cpp @@ -22,3 +22,14 @@ vector marcelb::Metrics::keys() { return _keys; } + +map marcelb::Metrics::get_data() { + return counters; +} + + +map marcelb::Metrics::get_data_and_clear() { + auto data = counters; + clear(); + return counters; +} \ No newline at end of file diff --git a/test/test b/test/test index e3549b3380dfcea9b6438b7b745b722ecb5e942d..37336007b3b97a1be69e47d9fa9c51776b6ad441 100755 GIT binary patch delta 14276 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