Tag broadcasted events with UUID and hop 00/21900/2
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 16 Jul 2019 21:39:27 +0000 (23:39 +0200)
committerJose Bollo <jose.bollo@iot.bzh>
Thu, 18 Jul 2019 13:38:02 +0000 (15:38 +0200)
commit6dfeafe7e4fa582b3db3f950136bc97f8611fc6d
tree62386661fe495dd8992260c89e09757326450edc
parent5b5968815dc672467f40ed6b49f05a590bdb8b4d
Tag broadcasted events with UUID and hop

When API have mutual dependencies, leading to
loops in dependecies, broadcasting an event
never ends because of the loop (see SPEC-2625).

To avoid that weird flood of events, a unic
identifier (UUID) is attached to broadcasted
event and a tiny memory records previously
broadcasted events to avoid re-sending an
already sent event.

The size of the memory can be set using the
macro variable EVENT_BROADCAST_MEMORY_COUNT
whose default value is 8. It can be reduced
to 0.

An other mecanism is added to limit the count
of hops that a broadcasted event can do. That
count can be set using the macro variable
EVENT_BROADCAST_HOP_MAX whose default value
is 10.

Bug-AGL: SPEC-2625

Change-Id: I29550a8a5c8f5e2ffb20edc3330357a1e870c0e2
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
bindings/samples/hello3.c
src/afb-api-dbus.c
src/afb-evt.c
src/afb-evt.h
src/afb-export.c
src/afb-proto-ws.c
src/afb-proto-ws.h
src/afb-stub-ws.c
src/afb-ws-json1.c
src/main-afb-client-demo.c