X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=inline;f=include%2Fafb-plugin.h;h=c7252d640bd58cb4c172f5285c211b1d9a962172;hb=469e619ac45402471ea7d8c792ffc06e79346ef2;hp=f2f4d6ec783f4b75cef57bf80aba429ed1977481;hpb=11d36a9f7e16aa9992835f8ce06f0e1e5297b131;p=src%2Fapp-framework-binder.git diff --git a/include/afb-plugin.h b/include/afb-plugin.h index f2f4d6ec..c7252d64 100644 --- a/include/afb-plugin.h +++ b/include/afb-plugin.h @@ -15,7 +15,11 @@ * limitations under the License. */ -struct afb_req; +#pragma once + +#include "afb-req-itf.h" +#include "afb-pollmgr-itf.h" +#include "afb-evmgr-itf.h" /* Plugin Type */ enum AFB_pluginE @@ -61,20 +65,33 @@ enum AFB_Mode { AFB_MODE_GLOBAL }; -/* -typedef enum AFB_pluginE AFB_pluginE; -typedef enum AFB_sessionE AFB_sessionE; -typedef void (*AFB_apiCB)(struct afb_req); -typedef void (*AFB_freeCtxCB)(void*); -typedef struct AFB_restapi AFB_restapi; -typedef struct AFB_plugin AFB_plugin; -*/ +struct afb_daemon_itf { + struct afb_evmgr (*get_evmgr)(void *closure); + struct afb_pollmgr (*get_pollmgr)(void *closure); +}; + +struct afb_daemon { + const struct afb_daemon_itf *itf; + void *closure; +}; struct AFB_interface { - int verbose; + 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 afb_pollmgr afb_daemon_get_pollmgr(struct afb_daemon daemon) +{ + return daemon.itf->get_pollmgr(daemon.closure); +} + +