#pragma once
-#include <afb/afb-req-itf.h>
-#include <afb/afb-evmgr-itf.h>
+#if defined(NO_PLUGIN_VERBOSE_MACRO)
+# define NO_BINDING_VERBOSE_MACRO
+#endif
-/* Plugin Type */
-enum AFB_pluginE
-{
- AFB_PLUGIN_JSON = 123456789,
-/* AFB_PLUGIN_JSCRIPT = 987654321, */
- AFB_PLUGIN_RAW = 987123546
-};
+#if defined(NO_PLUGIN_FILE_LINE_INDICATION)
+# define NO_BINDING_FILE_LINE_INDICATION
+#endif
-/* Enum for Session/Token/Authentication middleware */
-enum AFB_sessionE
-{
- AFB_SESSION_NONE = 0,
- AFB_SESSION_CREATE = 1,
- AFB_SESSION_CLOSE = 2,
- AFB_SESSION_RENEW = 4,
- AFB_SESSION_CHECK = 8,
- AFB_SESSION_MASK = 15
-};
+#include "afb-binding.h"
-/* API definition */
-struct AFB_restapi
-{
- const char *name;
- enum AFB_sessionE session;
- void (*callback)(struct afb_req req);
- const char *info;
-};
-
-/* Plugin definition */
-struct AFB_plugin
-{
- enum AFB_pluginE type;
- const char *info;
- const char *prefix;
- const struct AFB_restapi *apis;
-};
-
-/* config mode */
-enum AFB_Mode {
- AFB_MODE_LOCAL = 0,
- AFB_MODE_REMOTE,
- AFB_MODE_GLOBAL
-};
-
-struct sd_event;
-struct sd_bus;
-
-struct afb_daemon_itf {
- struct afb_evmgr (*get_evmgr)(void *closure);
- struct sd_event *(*get_event_loop)(void *closure);
- struct sd_bus *(*get_user_bus)(void *closure);
- struct sd_bus *(*get_system_bus)(void *closure);
-};
-
-struct afb_daemon {
- const struct afb_daemon_itf *itf;
- void *closure;
-};
-
-struct AFB_interface
-{
- int verbosity;
- enum AFB_Mode mode;
- struct afb_daemon daemon;
-};
-
-extern const struct AFB_plugin *pluginRegister (const struct AFB_interface *interface);
-
-static inline struct afb_evmgr afb_daemon_get_evmgr(struct afb_daemon daemon)
-{
- return daemon.itf->get_evmgr(daemon.closure);
-}
-
-static inline struct sd_event *afb_daemon_get_event_loop(struct afb_daemon daemon)
-{
- return daemon.itf->get_event_loop(daemon.closure);
-}
-
-static inline struct sd_bus *afb_daemon_get_user_bus(struct afb_daemon daemon)
-{
- return daemon.itf->get_user_bus(daemon.closure);
-}
-
-static inline struct sd_bus *afb_daemon_get_system_bus(struct afb_daemon daemon)
-{
- return daemon.itf->get_system_bus(daemon.closure);
-}
+#define AFB_plugin_version afb_binding_type
+#define AFB_PLUGIN_VERSION_1 AFB_BINDING_VERSION_1
+#define AFB_plugin_desc_v1 afb_binding_desc_v1
+#define AFB_plugin afb_binding
+#define AFB_interface afb_binding_interface
+#define pluginAfbV1Register afbBindingV1Register
+#define AFB_Mode afb_mode
+#define AFB_session_v1 afb_session_v1
+#define AFB_verb_desc_v1 afb_verb_desc_v1