Who owns the callbacks?  It's generally easier to force the argument to the callback to have enough information for the callback person to do the right thing than to do bookkeeping on your way into the callback.  Especially if the owner of the callback might be building up state as each notification comes in, there must be some method for the callback to know to throw away its state.