Bug 18172

Summary: ConnectionManager: add properties for possible and guaranteed Connection.Interfaces per protocol
Product: Telepathy Reporter: Alberto Mardegan <mardy>
Component: tp-specAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED DUPLICATE QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: enhancement    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard: see 20774
i915 platform: i915 features:
Bug Depends on: 20774    
Bug Blocks: 23148    

Description Alberto Mardegan 2008-10-22 01:03:37 UTC
Having a property on the connection manager that lists all interfaces possibly implemented in the objects created by the connection manager would allow some time saving: for instance, the availability of the org.freedesktop.Telepathy.Connection.Interface.Requests interface is something that depends on the CM code only, and knowing whether it's implemented or not can save some time on the inspection of connections.

So, I would propose to have a ImplementedInterfaces property on the CM, which would list all interfaces that this CM can possibly support; which would _not_ mean that, for example, if the CM has "org.freedesktop.Telepathy.Connection.Interface.Avatars" in its ImplementedInterfaces every connection created by this CM will have this interface, but simply that it _might_ be there (on the other hand, the absence of this interface from ImplementedInterfaces would definitely mean that no connection will have it).

Having this property stored into the .manager file would also be an optimization.
Comment 1 Simon McVittie 2008-10-22 02:20:19 UTC
There are two interesting sets of interfaces: those that will always be implemented by any Connection from this CM (e.g. Avatars in Gabble), and those that might be implemented, or not, depending on the Connection (e.g. OLPC stuff in Gabble). I think it's worth distinguishing between the two.

To be maximally informative for clients, we'd have a map from protocol name to sets of interfaces, e.g. { "xmpp" => (definitely=[AVATARS, ALIASING, SIMPLE_PRESENCE], maybe=[OLPC_MISC]) }. As connection managers' capabilities get more advanced, I expect that we'll have more cases where a single CM has different capabilities depending on the protocol that's requested.

(Use cases for that: in the long term we want Gabble and Salut to be the same CM, offering "xmpp" and "local-xmpp" protocols; meanwhile, Haze will probably start to export different interfaces on different protocols.)
Comment 2 Simon McVittie 2009-11-04 09:57:46 UTC
See Bug #20774
Comment 3 Simon McVittie 2010-05-06 08:55:48 UTC

*** This bug has been marked as a duplicate of bug 20774 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.