[Telepathy] [patch] Additional infos on the CM
simon.mcvittie at collabora.co.uk
Mon Apr 9 06:45:12 PDT 2007
On Mon, 09 Apr 2007 at 14:39:02 +0200, Tobias Hunger wrote:
> It adds to methods to the connection manager so that Decibel/Mission
> Control can find out which channel types/interfaces a CM supports so that
> they do not need to try things out (which would cause the CM to be started
> up as well).
A good idea in principle, thanks for writing this. I'm not completely
happy with the specifics of your spec change, so I'll defer this until I
can talk to Rob tomorrow.
My objection is that you can have different sorts of channel even within
a channel type. For instance:
* Gabble, Idle and probably most "mainstream IM" CMs have text channels
to contacts, and text channels to rooms, as distinct entities. The
room text channels have the Group and possibly Password interfaces,
the contact text channels don't.
* On the other hand, MSN has no concept of a named chatroom - it just
has text channels with the Group interface.
I think the interface should look more like this:
method ConnectionManager.GetPossibleChannels(s: proto) -> a(usasas)
Return a list of channel categories which might be supported by this
connection; after the connection becomes connected, it's
possible that requests for some of these will be rejected because the
server or remote contact does not support them.
The return value is an array of structs containing:
- the handle type which GetHandle would return, and which may be
passed to RequestHandles (it may be 0)
- the channel type as a string
- an array of strings representing extra Channel interfaces which will
always be supported by channels of this type and handle-type
- an array of strings representing extra Channel interfaces which might
be supported by channels of this type and handle-type, or not,
depending on server and remote contact capabilities
Perhaps it's not necessary to have separate lists of "always" and
"possible" extra interfaces.
If we're adding this sort of introspection, we might as well also provide
a similar way to get a list of possible extra Connection interfaces too, in
case someone wants that information (maybe you'd want to find out whether
a given CM supports presence). Again, we could divide it into "always"
and "possible", or not.
> This info should go into the manager file as well. Is that format
> described in the Wiki only? Then I'll update it there once this patch gets
Yes, once we've agreed what the D-Bus interface should look like,
equivalent information should go in the .manager file. We should really have
some way to add appendices to the spec describing the file formats, rather
than using the wiki for reference documentation...
More information about the Telepathy