f->dump_stream("received_at") << get_arrived();
f->dump_float("age", now - get_arrived());
f->dump_float("duration", get_duration());
- f->dump_string("current_state", state_string());
- if (m->get_orig_source().is_client()) {
- f->open_object_section("client_info");
- stringstream client_name;
- client_name << m->get_orig_source();
- f->dump_string("client", client_name.str());
- f->dump_int("tid", m->get_tid());
- f->close_section(); // client_info
- }
{
- f->open_array_section("events");
- for (list<pair<utime_t, string> >::const_iterator i = events.begin();
- i != events.end();
- ++i) {
- f->open_object_section("event");
- f->dump_stream("time") << i->first;
- f->dump_string("event", i->second);
- f->close_section();
- }
+ f->open_array_section("type_data");
+ _dump(now, f);
f->close_section();
}
}
}
virtual void init_from_message() {};
+ /// output any type-specific data you want to get when dump() is called
+ virtual void _dump(utime_t now, Formatter *f) const {}
public:
virtual ~TrackedOp() { assert(request); request->put(); }
virtual const char *state_string() const {
return events.rbegin()->second.c_str();
}
- virtual void dump(utime_t now, Formatter *f) const;
+ void dump(utime_t now, Formatter *f) const;
};
#endif
}
}
-void OpRequest::dump(utime_t now, Formatter *f) const
+void OpRequest::_dump(utime_t now, Formatter *f) const
{
Message *m = request;
- stringstream name;
- m->print(name);
- f->dump_string("description", name.str().c_str()); // this OpRequest
- f->dump_unsigned("rmw_flags", rmw_flags);
- f->dump_stream("received_at") << get_arrived();
- f->dump_float("age", now - get_arrived());
- f->dump_float("duration", get_duration());
f->dump_string("flag_point", state_string());
if (m->get_orig_source().is_client()) {
f->open_object_section("client_info");
void set_class_write() { rmw_flags |= CEPH_OSD_RMW_FLAG_CLASS_WRITE; }
void set_pg_op() { rmw_flags |= CEPH_OSD_RMW_FLAG_PGOP; }
- void dump(utime_t now, Formatter *f) const;
+ void _dump(utime_t now, Formatter *f) const;
private:
osd_reqid_t reqid;