Properties interface additions

David Zeuthen david at fubar.dk
Wed Jan 28 09:02:42 PST 2009


On Tue, 2009-01-27 at 11:41 +0000, Simon McVittie wrote:
> I have several objections to this signal.

<snip useful explanation of how Telepathy uses properties>

> So, in summary:
> 1. adding this signal would make existing bindings and services instantly buggy
> 2. the signal can't be relied on, because of 1.
> 3. clients ignoring 2. and using this signal anyway will be woken up
>    unnecessarily when using extensible services
> 4. signals added by the designers of individual interfaces can be
>    considerably better for their particular situation than this generic signal

I don't think 1-3 is a reasonable summary. I think you are ignoring that
the proposed Changed() signal is *optional*. Services such as Telepathy
would simply opt out of using Changed() well, because, of performance
reasons. Then, of course, you get to play games with having to add your
own signals, 4. above, that can send deltas and then you can optimize on
the client side as much as you want. No one is taking that away from
you.

If you look in the wild there are plenty of services, most services
actually, that actually use properties in a way such that having a
Changed() signal would be extremely beneficial and make applications a
lot simpler.

Now, I don't think it's reasonable to dismiss having a Changed() signal
just because it's not compatible with advanced services such as
Telepathy. I very much agree that we need a good way of indicating
whether an interface supports the optional Changed() signal so bindings
can do the right thing. Which is something that I admit is missing from
my original proposal.

My mail to Havoc talked about a property that indicates whether
properties and/or interfaces supports Changed(). Thinking more about it,
we probably want it in the introspection data instead in form of an
annotation for each property. Such that we can use it at
binding-generation-time and avoid a round-trip.

Would something like this work for you? I imagine it might even be
useful in Telepathy.

      David




More information about the dbus mailing list