Bug 25287 - change notification for Client objects
Summary: change notification for Client objects
Status: RESOLVED MOVED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: tp-spec (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-25 14:41 UTC by Danielle Madeley
Modified: 2019-12-03 20:20 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Danielle Madeley 2009-11-25 14:41:12 UTC
Is there any reason that Client objects must be immutable?

Rob says, it would be nice to have a backwards compatible way of notifying the CD of changes to a client's filters.
Comment 1 Simon McVittie 2009-11-26 04:03:30 UTC
(In reply to comment #0)
> Is there any reason that Client objects must be immutable?

Service-activatable Clients with a .client file have to be immutable in order to avoid the .client file being full of lies.

Non-activatable Clients are immutable to avoid adding more complexity to an already-subtle spec; it took quite a long time to get ChannelDispatcher designed and implemented in MC 5, and we still haven't quite finished getting MC 5 to implement the spec *correctly* :-)

> Rob says, it would be nice to have a backwards compatible way of notifying the
> CD of changes to a client's filters.

That way is to have multiple Client heads. Empathy implements two clients, Empathy (service-activatable for basic functionality - Text at the moment, I think?), and Empathy.MoreThanMeetsTheEye (bonus functionality like file transfers and VoIP).

Adding a filter: add a Client head (then optionally remove any old Client head that is a subset of the new one)

Removing a filter: add a Client head with the appropriate subset of filters, then remove the old Client head that had the superset

Based on implementation experience, we could consider having change-notification in Telepathy 1.0, but my instinct is to say that that would add more complexity than it was worth. The ChannelDispatcher has to deal with Clients appearing and disappearing *anyway*, so if we make the filters immutable and use multi-headed Clients to implement filter changes, we get that functionality without any extra code.
Comment 2 GitLab Migration User 2019-12-03 20:20:35 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/telepathy/telepathy-spec/issues/54.


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.