Some protocols require you to acknowledge messages in much the same way Telepathy does.
We can either do this immediately upon message receipt (sad) or wait until the client has acknowledged the message, at which point we know it's been shown to the user.
TpMessageMixin should be extended with another (optional) callback, which allows implementors to watch for message acknowledgements coming from the client, and then relay that acknowledgement over the protocol.
Patch to implement this.
We already had a bug for this, which we closed as WONTFIX since the CM can also connect to pending-messages-removed (the GObject signal used to implement PendingMessagesRemoved). Does the same reasoning still apply?
See Bug #23238 for background. Artem and Misha reckoned the signal was enough; if you agree, you could close this as a duplicate.
I personally think something that returns the TpMessages is more useful.
Especially when TpMessage becomes a GObject, implementers will be able to attach any useful private data to the message with g_object_set_data() including a message identifier, string or pointer to MyProtoMessageObject.
wjt | danni: your branch on https://bugs.freedesktop.org/show_bug.cgi?id=32205 has vanished; do you agree with simon?
danni | wjt: oh, I guess I can agree with simon, I refactored my code long ago