@@ -139,7 +139,7 @@ class MetricsCollector : private eckit::NonCopyable {
139139 size_t stackIndex_{0 };
140140
141141 time_t created_;
142- ValueMap metrics_;
142+ Value metrics_;
143143
144144private: // methods
145145
@@ -151,8 +151,6 @@ class MetricsCollector : private eckit::NonCopyable {
151151 m.print (s);
152152 return s;
153153 }
154-
155- void dump () const ;
156154};
157155
158156static MetricsCollector* current_ = nullptr ;
@@ -216,25 +214,6 @@ void MetricsCollector::push(const std::string& name) {
216214 stack_.emplace_back (name);
217215}
218216
219- void MetricsCollector::dump () const {
220- std::cout << " Stack - " << stack_.size () << " :" << std::endl;
221- for (const auto & s : stack_) {
222- std::cout << " " << (s.group () ? " G " : " " ) << strLen (8 , s.name ) << strLen (12 , s.groupFullName )
223- << " keys=" << s.groupKeys .size () << " values=" ;
224- ValueList ll = s.groupValues ;
225- for (const auto & v : ll) {
226- std::cout << v << " " ;
227- }
228- std::cout << " last" << s.groupNextValue ;
229- std::cout << std::endl;
230- }
231-
232- std::cout << " Metrics - " << metrics_.size () << " :" << std::endl;
233- for (const auto & [k, v] : metrics_) {
234- std::cout << " key=" << k << " value=" << v << std::endl;
235- }
236- }
237-
238217void MetricsCollector::item () {
239218 if (!stack_.empty () && stackIndex_ > 0 ) {
240219 auto & ss = stack_[stackIndex_ - 1 ];
@@ -267,13 +246,12 @@ void MetricsCollector::pop() {
267246 newss.groupNextValue = cleanPaths (top);
268247 }
269248 else { // top level group - update metrics
270- auto it = metrics_.find (ss.groupFullName );
271- if (it == metrics_.end ()) {
272- it = metrics_.emplace (ss.groupFullName , Value::makeList ()).first ;
249+ if (!metrics_.contains (ss.groupFullName )) {
250+ metrics_[ss.groupFullName ] = Value::makeList ();
273251 }
274252 ValueList ll = ss.groupValues ;
275253 for (const auto & v : ll) {
276- it-> second .append (v);
254+ metrics_[ss. groupFullName ] .append (v);
277255 }
278256 }
279257 }
@@ -284,9 +262,8 @@ void MetricsCollector::pushGroup(const std::string& name) {
284262 std::string groupFullName = full (name);
285263 if (stackIndex_ == 0 ) {
286264 // First group - if missing, create a placeholder in metrics
287- auto it = metrics_.find (groupFullName);
288- if (it == metrics_.end ()) {
289- metrics_.emplace (groupFullName, Value::makeList ());
265+ if (!metrics_.contains (groupFullName)) {
266+ metrics_[groupFullName] = Value::makeList ();
290267 }
291268 keys_.insert (groupFullName);
292269 }
0 commit comments