if (!i->second->filter_out(filters))
continue;
f->open_object_section("op");
- i->second->dump(now, f);
+ i->second->dump(now, f, OpTracker::default_dumper);
f->close_section();
}
};
if (!i->second->filter_out(filters))
continue;
f->open_object_section("Op");
- i->second->dump(now, f);
+ i->second->dump(now, f, OpTracker::default_dumper);
f->close_section();
}
f->close_section();
return true;
}
-bool OpTracker::dump_ops_in_flight(Formatter *f, bool print_only_blocked, set<string> filters, bool count_only)
+bool OpTracker::dump_ops_in_flight(Formatter *f, bool print_only_blocked, set<string> filters, bool count_only, dumper lambda)
{
if (!tracking_enabled)
return false;
if (!count_only) {
f->open_object_section("op");
- op.dump(now, f);
+ op.dump(now, f, lambda);
f->close_section(); // this TrackedOp
}
_event_marked();
}
-void TrackedOp::dump(utime_t now, Formatter *f) const
+void TrackedOp::dump(utime_t now, Formatter *f, OpTracker::dumper lambda) const
{
// Ignore if still in the constructor
if (!state)
f->dump_float("duration", get_duration());
{
f->open_object_section("type_data");
- _dump(f);
+ lambda(*this, f);
f->close_section();
}
}