[Telepathy] Account.Interface.ChannelRequests

Alberto Mardegan mardy at users.sourceforge.net
Mon Nov 24 03:04:27 PST 2008

   the current implementation of MissionControl is not following the official 
Telepathy APIs for channel requesting and dispatching.
The differences are the following:

- The ChannelDispatcher object does not exists; Instead, channel requests are 
made and monitored through this interface on the Account:

(git branch)

(HTML version)

- The ChannelRequest objects do not exist; the interface above mentions their 
object paths, but they are used only as string identifiers. The Cancel method 
and the Failed and Succeeded signals are implemented in the ChannelRequests 

All the rest, including ChannelDispatchOperation and all the Client APIs, is the 
same as in the specs.
I'd like to explain the reason for these changes (in random order):

- Time: the current MC implementation was the one requiring less work

- Performance: The ChannelDispatcher object is not necessary, and the 
ChannelRequest is a good thing only in theory: with its Proceed() method and the 
need to connect to the Failed and Succeeded signals, I'm afraid it's making 
things slower.

The TP spec is IMHO just more beautiful, but I don't think that APIs should be 
judged on the such criteria; I consider its channel requesting API inconvenient, 
even though of course it can be wrapped in a nicer library.

That said, if someone feels like submitting patches to MC to implement the 
official TP spec, I'm not going to complain. :-) It would be nice if the two 
implementations could be chosen by some #ifdef, so that once they are both ready 
we could have some performance evaluations.

But for the time being, I cannot (and don't really want to) commit to this.


http://www.mardy.it <-- Geek in un lingua international!

More information about the Telepathy mailing list