assert(ops_in_flight.empty());
}
- template <typename T, typename TRef>
- TRef create_request(Message *ref)
+ template <typename T>
+ typename T::Ref create_request(Message *ref)
{
- TRef retval(new T(ref, this),
- RemoveOnDelete(this));
-
+ typename T::Ref retval(new T(ref, this),
+ RemoveOnDelete(this));
+
_mark_event(retval.get(), "header_read", ref->get_recv_stamp());
_mark_event(retval.get(), "throttled", ref->get_throttle_stamp());
_mark_event(retval.get(), "all_read", ref->get_recv_complete_stamp());
_mark_event(retval.get(), "dispatched", ref->get_dispatch_stamp());
-
+
retval->init_from_message();
-
+
return retval;
}
};
default:
{
- OpRequestRef op = op_tracker.create_request<OpRequest, OpRequestRef>(m);
+ OpRequestRef op = op_tracker.create_request<OpRequest>(m);
op->mark_event("waiting_for_osdmap");
// no map? starting up?
if (!osdmap) {
}
void init_from_message();
-};
-typedef std::tr1::shared_ptr<OpRequest> OpRequestRef;
+ typedef std::tr1::shared_ptr<OpRequest> Ref;
+};
+typedef OpRequest::Ref OpRequestRef;
#endif /* OPREQUEST_H_ */