OpTracker: remove the references to "osd" in config variables

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: move some more stuff from OpTracker->TrackedOp, clean up privacy

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: move mark_event implementation to TrackedOp

There was nothing OpRequest-specific about it, and I'm not sure there
should be. We leave it as virtual for the future, though.

Signed-off-by: Greg Farnum <greg@inktank.com>
osd: change how we work around an interface limitation.

If this had ever actually been triggered we would have hit an assert
in the OpRequest destructor that op->request is non-NULL.

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: include a destructor for the TrackedOp base class.

Our method of handling the OpRequest destructor is a little weird,
but we're about to give it a separate "request" member to clean
up the base interface some.

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: give the OpRequest an aliasing "request" member.

We're about to get rid of this, so don't shudder for too long...

Signed-off-by: Greg Farnum <greg@inktank.com>
osd: use TrackedOp::get_req() instead of direct access to the request.

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: provide a default implementation of TrackedOp::state_string

We're moving towards dynamically-allocated states instead of the static
ones this started with, so the whole bitmask-based thing doesn't make
much sense any more. Assume people won't use that and provide a default.

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: demand that a TrackedOp gets to own its Message for life.

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: get rid of TrackedOp::received_time for the Message

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: give TrackedOp a default dump() function

Signed-off-by: Greg Farnum <greg@inktank.com>
OpTracker: add a templated CTOp container class which provides some type safety

This way we can get some basic type safety by turning our (generic)
TrackedOp into one of these. Notice that it requires a MESSAGE_TYPE_ID
static member from the Message subclasses...that's coming soon.

Signed-off-by: Greg Farnum <greg@inktank.com>
messages: add a static const int MESSAGE_TYPE_ID to each Message

This will let us do some limited type introspection on them in the
future, and maybe other meta-programming tricks too.

Signed-off-by: Greg Farnum <greg@inktank.com>