Bug 18172 - ConnectionManager: add properties for possible and guaranteed Connection.Interfaces per protocol
Summary: ConnectionManager: add properties for possible and guaranteed Connection.Inte...
Status: RESOLVED DUPLICATE of bug 20774
Alias: None
Product: Telepathy
Classification: Unclassified
Component: tp-spec (show other bugs)
Version: unspecified
Hardware: Other All
: medium enhancement
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
Whiteboard: see 20774
Depends on: 20774
Blocks: tp-spec-1.0
  Show dependency treegraph
Reported: 2008-10-22 01:03 UTC by Alberto Mardegan
Modified: 2010-05-06 08:55 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


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.