From: David Zeuthen Date: Thu, 13 May 2010 14:25:22 +0000 (-0400) Subject: Add an extra parameter to the PropertiesChanged() signal X-Git-Tag: dbus-1.3.1~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f8729bc8645a15304477f4a4156b47b95c4e7666;p=platform%2Fupstream%2Fdbus.git Add an extra parameter to the PropertiesChanged() signal It was pointed out on the mailing list that it would be useful to know that a given property has changed without conveying its value. Because without this parameter a true_no_value property could change, however there is no way for a client-side proxy to know _what_ property it was (only that some property changed). With the parameter, however, a client-side proxy can reliably discard a cached property value. Also rename the "true_no_value" to "invalidates" as the spec is now using this language. Also allow using the annotation in the enclosed interface name. Also rename the annotation name so it uses Property in its name instead of Properties. This is to be more consistent with the existing org.freedesktop.DBus.Method.NoReply annotation which uses Method, not Methods. Signed-off-by: David Zeuthen --- diff --git a/doc/dbus-specification.xml b/doc/dbus-specification.xml index 75a302a..feec7ab 100644 --- a/doc/dbus-specification.xml +++ b/doc/dbus-specification.xml @@ -2765,21 +2765,29 @@ org.freedesktop.DBus.Properties.PropertiesChanged (STRING interface_name, - DICT<STRING,VARIANT> changed_properties); + DICT<STRING,VARIANT> changed_properties, + ARRAY<STRING> invalidated_properties); where changed_properties is a dictionary - containing the changed properties and the new values. + containing the changed properties with the new values and + invalidated_properties is an array of + properties that changed but the value is not conveyed. Whether the PropertiesChanged signal is supported can be determined by calling - org.freedesktop.DBus.Introspectable.Introspect. If - the signal is supported for an object but not used for one or - more properties (for e.g. performance reasons), each such - property must be annotated with the - org.freedesktop.DBus.Properties.EmitsChangedSignal + org.freedesktop.DBus.Introspectable.Introspect. Note + that the signal may be supported for an object but it may + differ how whether and how it is used on a per-property basis + (for e.g. performance or security reasons). Each property (or + the parent interface) must be annotated with the + org.freedesktop.DBus.Property.EmitsChangedSignal + annotation to convey this (usually the default value + true is sufficient meaning that the + annotation does not need to be used). See for details on this annotation. @@ -2913,9 +2921,33 @@ If set, don't expect a reply to the method call; defaults to false. - org.freedesktop.DBus.Properties.EmitsChangedSignal - true,true_no_value,false - If set to false, the org.freedesktop.DBus.Properties.PropertiesChanged signal, see , is not emitted if the property changes. If set to true_no_value the signal is emitted but the value is no included in the signal. Defaults to true. + org.freedesktop.DBus.Property.EmitsChangedSignal + true,invalidates,false + + + If set to false, the + org.freedesktop.DBus.Properties.PropertiesChanged + signal, see is not + guaranteed to be emitted if the property changes. + + + If set to invalidates the signal + is emitted but the value is not included in the + signal. + + + If set to true the signal is + emitted with the value included. + + + The value for the annotation defaults to + true if the enclosing interface + element does not specify the annotation. Otherwise it + defaults to the value specified in the enclosing + interface element. + +