20 #ifndef __EKG_PLUGINS_H 21 #define __EKG_PLUGINS_H 26 #include <sys/types.h> 36 #define EKG_ABI_VER 5798 38 #define EXPORT __attribute__ ((visibility("default"))) G_MODULE_EXPORT 56 #define PLUGIN_VAR_ADD(name, type, value, secret, notify) { name, value, secret, type, notify, NULL } 57 #define PLUGIN_VAR_ADD_MAP(name, type, value, secret, notify, map) { name, value, secret, type, notify, map } 58 #define PLUGIN_VAR_END() { NULL, NULL, 0, -1, NULL } 60 #define PLUGIN_CHECK_VER(name) { if (!plugin_abi_version(EKG_ABI_VER, name)) return -1; } 94 #ifndef EKG2_WIN32_NOFUNCTION 109 #ifdef USINGANANTIQUECOMPILER 110 #define PLUGIN_DEFINE(x, y, z)\ 111 static int x##_plugin_destroy(); \ 113 plugin_t x##_plugin = { \ 118 x##_plugin_destroy, \ 123 #define PLUGIN_DEFINE(x, y, z)\ 124 static int x##_plugin_destroy(); \ 126 plugin_t x##_plugin = { \ 129 .destroy = x##_plugin_destroy, \ 134 #define QUERY(x) int x(void *data, va_list ap) 138 #define QUERIES_BUCKETS 64 161 #ifndef EKG2_WIN32_NOFUNCTION void * data
Definition: plugins.h:145
int plugin_var_find(plugin_t *pl, const char *name)
Definition: plugins.c:557
int plugin_unload(plugin_t *)
Definition: plugins.c:374
plugin_theme_init_func_t theme_init
Definition: plugins.h:83
Definition: sessions.h:127
const char ** protocols
Definition: plugins.h:72
int query_free(query_t *g)
Definition: plugins.c:651
int query_emit(plugin_t *, const char *,...)
Definition: plugins.c:717
struct query_node * next
Definition: plugins.h:141
plugin_t * plugin_find(const char *name)
Definition: plugins.c:329
void registered_queries_free()
Definition: plugins.c:577
#define QUERY(x)
Definition: plugins.h:134
const status_t * statuses
Definition: plugins.h:73
int have_plugin_of_class(plugin_class_t pclass)
Definition: plugins.c:776
char * name
Definition: plugins.h:142
int type
Definition: plugins.h:66
int(* plugin_theme_init_func_t)(void)
Definition: plugins.h:53
int(* plugin_destroy_func_t)(void)
Definition: plugins.h:52
struct variable_map_t * map
Definition: plugins.h:68
int count
Definition: plugins.h:147
query_handler_func_t * handler
Definition: plugins.h:146
void queries_list_destroy(query_t **kk)
Definition: plugins.c:66
int plugin_var_add(plugin_t *pl, const char *name, int type, const char *value, int secret, plugin_notify_func_t *notify)
Definition: plugins.c:570
status_t
Definition: sessions.h:39
int query_handler_func_t(void *data, va_list ap)
Definition: plugins.h:135
char * value
Definition: plugins.h:64
plugin_notify_func_t * notify
Definition: plugins.h:67
int plugin_register(plugin_t *, int prio)
Definition: plugins.c:440
plugin_class_t
Definition: plugins.h:40
int plugin_abi_version(int plugin_abi_ver, const char *plugin_name)
Definition: plugins.c:797
int query_register(const char *name,...)
Definition: plugins.c:616
char * key
Definition: plugins.h:63
plugin_destroy_func_t destroy
Definition: plugins.h:80
plugin_t * plugin
Definition: plugins.h:144
query_t * query_connect(plugin_t *plugin, const char *name, query_handler_func_t *handler, void *data)
Definition: plugins.c:658
void * dl
Definition: plugins.h:81
int name_hash
Definition: plugins.h:143
const char * name
Definition: remote.c:88
query_t * queries[]
Definition: plugins.c:54
int plugin_unregister(plugin_t *)
Definition: plugins.c:475
Definition: plugins.h:140
struct query_node query_t
const void * priv
Definition: plugins.h:85
GSList * plugins
Definition: plugins.c:33
int prio
Definition: plugins.h:78
void() plugin_notify_func_t(session_t *, const char *)
Definition: plugins.h:54
void queries_reconnect()
Definition: plugins.c:758
int secret
Definition: plugins.h:65
abort_handler handler
Definition: abort.c:24
plugin_t * plugin_find_uid(const char *uid)
Definition: plugins.c:354
void plugins_unlink(plugin_t *pl)
Definition: plugins.c:48
plugins_params_t * params
Definition: plugins.h:82
char * name
Definition: plugins.h:77
plugin_class_t pclass
Definition: plugins.h:79
int plugin_load(const char *name, int prio, int quiet)
Definition: plugins.c:169