thiago at kde.org
Sat May 8 00:21:49 PDT 2010
Em Sábado 8. Maio 2010, às 04.28.33, David Zeuthen escreveu:
> While it is certainly your prerogative to not support this new signal
> in QtDBus, please note this new signal is mostly a codification of
> existing (and in my humble opinion good) practices. I mean, one way to
> look at it is that if you have a remote object with properties you
> want remote peers to know about these properties. So one way or the
> other you will to transport these values over the transport and that
> includes property changes too. Codifying this into a PropertiesChanged
> signal is helpful because it allows bindings to automatically handle
> this and it does so in a race-free manner and economical manner .
> As to whether this signal is inherently wasteful, why is this any
> different than any other (existing) signal? Sure, the way things
> currently work you will always have signal traffic flowing from each
> name owner to the bus even if no clients are listening. While this
> comes with some overhead  we can solve this by extending the D-Bus
> protocol with something like this handwavy proposal:
There are two reasons for wanting to know from the bus if anyone is listening:
1) some properties may be changing very fast and relaying that info to the bus
if no one is interesting will just generate useless traffic, like the position
of a window/item during motion
2) connecting for a signal makes the signal emission slower than if nothing is
connected, so it's also a performance issue
Maybe extending the bus protocol like you suggested is the way to go, but it
requires a more specific "connect to signal" method than AddMatch.
One more suggestion: an annotation, per property, that indicates whether this
property is contained in the PropertiesChanged signal. This allows a client to
know whether the PropertiesChanged signal will contain any interesting
information, or if it will be emitted at all.
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Senior Product Manager - Nokia, Qt Development Frameworks
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 190 bytes
Desc: This is a digitally signed message part.
More information about the dbus