[RFC BlueZ 0/2] Fix types and names of beacon/import flags.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux