Tag broadcasted events with UUID and hop 97/21897/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:39:52 +0000 (15:39 +0200)
commit037157919df0a7ee90837037748a6456431e6469
treea33e3494a78052b73aea06b694b98298ea04de36
parenta445694bda8773cb80566808b5dcb56f033dee58
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

Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Change-Id: I45877583dbf478a79d405c3650880a5579ac1f9e
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