X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fsession.c;h=ae44f7938af08a07243f3cc8dde7c854ba2ffd16;hb=bd68881a7977d2fe63d4ca85b757ed9c127ec21d;hp=3e08808faef926006ca55493db0f38fb765ffcb1;hpb=9e3afb8aa598f3e69e2c3723335507c12b4cd1f1;p=src%2Fapp-framework-binder.git diff --git a/src/session.c b/src/session.c index 3e08808f..ae44f793 100644 --- a/src/session.c +++ b/src/session.c @@ -25,6 +25,8 @@ #include #include +#include + #include "session.h" #define NOW (time(NULL)) @@ -290,18 +292,18 @@ void ctxTokenNew (struct AFB_clientCtx *clientCtx) clientCtx->expiration = NOW + sessions.timeout; } -struct afb_event_sender_list +struct afb_event_listener_list { - struct afb_event_sender_list *next; - struct afb_event_sender sender; + struct afb_event_listener_list *next; + struct afb_event_listener listener; int refcount; }; -int ctxClientEventSenderAdd(struct AFB_clientCtx *clientCtx, struct afb_event_sender sender) +int ctxClientEventListenerAdd(struct AFB_clientCtx *clientCtx, struct afb_event_listener listener) { - struct afb_event_sender_list *iter, **prv; + struct afb_event_listener_list *iter, **prv; - prv = &clientCtx->senders; + prv = &clientCtx->listeners; for (;;) { iter = *prv; if (iter == NULL) { @@ -310,12 +312,12 @@ int ctxClientEventSenderAdd(struct AFB_clientCtx *clientCtx, struct afb_event_se errno = ENOMEM; return -1; } - iter->sender = sender; + iter->listener = listener; iter->refcount = 1; *prv = iter; return 0; } - if (iter->sender.itf == sender.itf && iter->sender.closure == sender.closure) { + if (iter->listener.itf == listener.itf && iter->listener.closure == listener.closure) { iter->refcount++; return 0; } @@ -323,16 +325,16 @@ int ctxClientEventSenderAdd(struct AFB_clientCtx *clientCtx, struct afb_event_se } } -void ctxClientEventSenderRemove(struct AFB_clientCtx *clientCtx, struct afb_event_sender sender) +void ctxClientEventListenerRemove(struct AFB_clientCtx *clientCtx, struct afb_event_listener listener) { - struct afb_event_sender_list *iter, **prv; + struct afb_event_listener_list *iter, **prv; - prv = &clientCtx->senders; + prv = &clientCtx->listeners; for (;;) { iter = *prv; if (iter == NULL) return; - if (iter->sender.itf == sender.itf && iter->sender.closure == sender.closure) { + if (iter->listener.itf == listener.itf && iter->listener.closure == listener.closure) { if (!--iter->refcount) { *prv = iter->next; free(iter); @@ -345,13 +347,13 @@ void ctxClientEventSenderRemove(struct AFB_clientCtx *clientCtx, struct afb_even static int send(struct AFB_clientCtx *clientCtx, const char *event, struct json_object *object) { - struct afb_event_sender_list *iter; + struct afb_event_listener_list *iter; int result; result = 0; - iter = clientCtx->senders; + iter = clientCtx->listeners; while (iter != NULL) { - iter->sender.itf->send(iter->sender.closure, event, object); + iter->listener.itf->send(iter->listener.closure, event, json_object_get(object)); result++; iter = iter->next; }