summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/afb/afb-event-sender-itf.h35
-rw-r--r--include/afb/afb-plugin.h23
-rw-r--r--src/afb-api-so.c16
3 files changed, 11 insertions, 63 deletions
diff --git a/include/afb/afb-event-sender-itf.h b/include/afb/afb-event-sender-itf.h
deleted file mode 100644
index ad354319..00000000
--- a/include/afb/afb-event-sender-itf.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2016 "IoT.bzh"
- * Author: José Bollo <jose.bollo@iot.bzh>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-struct json_object;
-
-struct afb_event_sender_itf {
- void (*push)(void *event_sender, const char *name, struct json_object *object);
-};
-
-struct afb_event_sender {
- const struct afb_event_sender_itf *itf;
- void *closure;
-};
-
-static inline void afb_event_sender_push(struct afb_event_sender mgr, const char *name, struct json_object *object)
-{
- return mgr.itf->push(mgr.closure, name, object);
-}
-
diff --git a/include/afb/afb-plugin.h b/include/afb/afb-plugin.h
index 2b065b08..1eb3475b 100644
--- a/include/afb/afb-plugin.h
+++ b/include/afb/afb-plugin.h
@@ -39,7 +39,6 @@
*/
#include <afb/afb-req-itf.h>
-#include <afb/afb-event-sender-itf.h>
/*
* Definition of the versions of the plugin.
@@ -141,10 +140,10 @@ struct sd_bus;
* Definition of the facilities provided by the daemon.
*/
struct afb_daemon_itf {
- struct afb_event_sender (*get_event_sender)(void *closure); /* get the event manager */
- struct sd_event *(*get_event_loop)(void *closure); /* get the common systemd's event loop */
- struct sd_bus *(*get_user_bus)(void *closure); /* get the common systemd's user d-bus */
- struct sd_bus *(*get_system_bus)(void *closure); /* get the common systemd's system d-bus */
+ void (*event_broadcast)(void *closure, const char *name, struct json_object *object); /* broadcasts evant 'name' with 'object' */
+ struct sd_event *(*get_event_loop)(void *closure); /* gets the common systemd's event loop */
+ struct sd_bus *(*get_user_bus)(void *closure); /* gets the common systemd's user d-bus */
+ struct sd_bus *(*get_system_bus)(void *closure); /* gets the common systemd's system d-bus */
void (*vverbose)(void*closure, int level, const char *file, int line, const char *fmt, va_list args);
};
@@ -173,15 +172,6 @@ struct AFB_interface
extern const struct AFB_plugin *pluginAfbV1Register (const struct AFB_interface *interface);
/*
- * Retrieves the event sender of AFB
- * 'daemon' MUST be the daemon given in interface when activating the plugin.
- */
-static inline struct afb_event_sender afb_daemon_get_event_sender(struct afb_daemon daemon)
-{
- return daemon.itf->get_event_sender(daemon.closure);
-}
-
-/*
* Retrieves the common systemd's event loop of AFB
* 'daemon' MUST be the daemon given in interface when activating the plugin.
*/
@@ -219,7 +209,7 @@ static inline struct sd_bus *afb_daemon_get_system_bus(struct afb_daemon daemon)
*/
static inline void afb_daemon_broadcast_event(struct afb_daemon daemon, const char *name, struct json_object *object)
{
- return afb_event_sender_push(afb_daemon_get_event_sender(daemon), name, object);
+ return daemon.itf->event_broadcast(daemon.closure, name, object);
}
/*
@@ -237,6 +227,9 @@ static inline void afb_daemon_verbose(struct afb_daemon daemon, int level, const
va_end(args);
}
+/*
+ * Macros for logging messages
+ */
#if !defined(NO_PLUGIN_VERBOSE_MACRO)
# if !defined(NO_PLUGIN_FILE_LINE_INDICATION)
# define ERROR(itf,...) do{if(itf->verbosity>=0)afb_daemon_verbose(itf->daemon,3,__FILE__,__LINE__,__VA_ARGS__);}while(0)
diff --git a/src/afb-api-so.c b/src/afb-api-so.c
index abe100b0..9756b0e0 100644
--- a/src/afb-api-so.c
+++ b/src/afb-api-so.c
@@ -30,7 +30,6 @@
#include <afb/afb-plugin.h>
#include <afb/afb-req-itf.h>
-#include <afb/afb-event-sender-itf.h>
#include "session.h"
#include "afb-common.h"
@@ -54,7 +53,7 @@ static int api_timeout = 15;
static const char plugin_register_function_v1[] = "pluginAfbV1Register";
-static void afb_api_so_event_sender_push(struct api_so_desc *desc, const char *name, struct json_object *object)
+static int afb_api_so_event_broadcast(struct api_so_desc *desc, const char *name, struct json_object *object)
{
size_t length;
char *event;
@@ -65,16 +64,7 @@ static void afb_api_so_event_sender_push(struct api_so_desc *desc, const char *n
memcpy(event, desc->plugin->v1.prefix, desc->apilength);
event[desc->apilength] = '/';
memcpy(event + desc->apilength + 1, name, length + 1);
- ctxClientEventSend(NULL, event, object);
-}
-
-static const struct afb_event_sender_itf event_sender_itf = {
- .push = (void*)afb_api_so_event_sender_push
-};
-
-static struct afb_event_sender afb_api_so_get_event_sender(struct api_so_desc *desc)
-{
- return (struct afb_event_sender){ .itf = &event_sender_itf, .closure = desc };
+ return ctxClientEventSend(NULL, event, object);
}
static void afb_api_so_vverbose(struct api_so_desc *desc, int level, const char *file, int line, const char *fmt, va_list args)
@@ -90,7 +80,7 @@ static void afb_api_so_vverbose(struct api_so_desc *desc, int level, const char
}
static const struct afb_daemon_itf daemon_itf = {
- .get_event_sender = (void*)afb_api_so_get_event_sender,
+ .event_broadcast = (void*)afb_api_so_event_broadcast,
.get_event_loop = (void*)afb_common_get_event_loop,
.get_user_bus = (void*)afb_common_get_user_bus,
.get_system_bus = (void*)afb_common_get_system_bus,