This patchset aims to make the API a bit more consistent. Side question: at the moment none of the node properties emit PropertiesChanged signal. I think this violates D-Bus spec, since all properties are assumed to emit these signals by default [1] [2]. Unfortunately, at the moment ELL does not support "EmitsChangedSignal" annotation, so I'd like to add this to ELL, annotate node properties with: - Features: const - Beacon: true - BeaconFlags: true - IvIndex: true - SecondsSinceLastHeard: false (for performance reasons) - Addresses: const And also emit PropertiesChanged where required. Thoughts? [1] https://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties 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 the section called “Introspection Data Format” for details on this annotation. [2] https://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format org.freedesktop.DBus.Property.EmitsChangedSignal: true,invalidates,const,false If set to false, the org.freedesktop.DBus.Properties.PropertiesChanged signal, see the section called “org.freedesktop.DBus.Properties” is not guaranteed to be emitted if the property changes. If set to const the property never changes value during the lifetime of the object it belongs to, and hence the signal is never emitted for it. 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. This annotation is intended to be used by code generators to implement client-side caching of property values. For all properties for which the annotation is set to const, invalidates or true the client may unconditionally cache the values as the properties don't change or notifications are generated for them if they do. Michał Lowas-Rzechonek (2): mesh: Rename IVUpdate import flag to IvUpdate mesh: Change BeaconFlags property type to a dict doc/mesh-api.txt | 20 +++++++++++++++----- mesh/mesh.c | 2 +- mesh/node.c | 13 +++++++++++-- 3 files changed, 27 insertions(+), 8 deletions(-) -- 2.19.1