#pragma once #include #include #include "sdk/include/session.h" #include "sdk/include/plugin.h" struct stellar_plugin_ctx { void *call_back_arg; const struct timeval timeout; fn_session_event_callback call_back; TAILQ_ENTRY(stellar_plugin_ctx) tqe; }; TAILQ_HEAD(stellar_plugin_ctx_list, stellar_plugin_ctx); struct stellar_plugin_data { stellar_plugin_ctx_list plugin_ctx_list; }; struct plugin_manager_handle; struct plugin_manager_handle *plugin_manager_init(); int plugin_manager_event_register(struct plugin_manager_handle *h, const char *session_type_name, fn_session_event_callback call_back, const struct timeval *timeout); int plugin_manager_load(const char *plugin_conf_path); void plugin_manager_dispatch(struct plugin_manager_handle *h, struct stellar_event *ev);