X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=include%2Fafb-plugin.h;h=40b26cfa69c4889a74a4dfc2fa3b94cb37881233;hb=28a3f9d5c0b92c7dd3a3844e73b83aa350d5e165;hp=2c9935e67ec6533f33667ed45310101de09892cf;hpb=68a8eaafe5f43480f29308bfd2ec12ad54da43f1;p=src%2Fapp-framework-binder.git diff --git a/include/afb-plugin.h b/include/afb-plugin.h index 2c9935e6..40b26cfa 100644 --- a/include/afb-plugin.h +++ b/include/afb-plugin.h @@ -1,5 +1,5 @@ /* - * Copyright 2016 IoT.bzh + * Copyright (C) 2016 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,7 +17,8 @@ #pragma once -struct afb_req; +#include "afb-req-itf.h" +#include "afb-evmgr-itf.h" /* Plugin Type */ enum AFB_pluginE @@ -30,11 +31,12 @@ enum AFB_pluginE /* Enum for Session/Token/Authentication middleware */ enum AFB_sessionE { - AFB_SESSION_NONE, - AFB_SESSION_CREATE, - AFB_SESSION_CLOSE, - AFB_SESSION_RENEW, - AFB_SESSION_CHECK + AFB_SESSION_NONE = 0, + AFB_SESSION_CREATE = 1, + AFB_SESSION_CLOSE = 2, + AFB_SESSION_RENEW = 4, + AFB_SESSION_CHECK = 8, + AFB_SESSION_MASK = 15 }; /* API definition */ @@ -53,7 +55,6 @@ struct AFB_plugin const char *info; const char *prefix; const struct AFB_restapi *apis; - void (*freeCtxCB)(void*); // callback to free application context [null for standard free] }; /* config mode */ @@ -63,13 +64,48 @@ enum AFB_Mode { 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; - const struct afb_pollitf *pollitf; - void *pollclosure; + 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); +} + +