20 #ifndef __EKG_PLUGINS_H 21 #define __EKG_PLUGINS_H 23 #include <sys/types.h> 29 #define EKG_ABI_VER 4921 31 #define EXPORT __attribute__ ((visibility("default"))) 49 #define PLUGIN_VAR_ADD(name, type, value, secret, notify) { name, value, secret, type, notify } 50 #define PLUGIN_VAR_END() { NULL, NULL, 0, -1, NULL } 52 #define PLUGIN_CHECK_VER(name) { if (!plugin_abi_version(EKG_ABI_VER, name)) return -1; } 84 #define PLUGIN_DEFINE(x, y, z)\ 85 static int x##_plugin_destroy(); \ 87 plugin_t x##_plugin = { \ 90 .destroy = x##_plugin_destroy, \ 94 #define QUERY(x) int x(void *data, va_list ap) 119 #define WATCHER(x) int x(int type, int fd, watch_type_t watch, void *data) 120 #define WATCHER_LINE(x) int x(int type, int fd, const char *watch, void *data) 124 typedef struct watch {
153 #define watch_add_line(p, fd, type, handler, data) watch_add(p, fd, type, (watcher_handler_func_t *) (handler), data)
int watcher_handler_func_t(int type, int fd, watch_type_t watch, void *data)
Definition: plugins.h:122
time_t __timeout
Definition: plugins.h:131
void * data
Definition: plugins.h:145
GString * string_t
Definition: dynstuff.h:147
int plugin_unload(plugin_t *)
Definition: plugins.c:374
int query_emit_idXXX(plugin_t *, const int,...)
Definition: plugins.c:343
Definition: plugins.h:114
Definition: sessions.h:127
int watch_write(watch_t *w, const char *buf, int len)
plugin_t * plugin_find(const char *name)
Definition: plugins.c:329
static plugin_t p
Definition: static-aborts.c:4
void watch_handle(watch_t *w)
char * name
Definition: plugins.h:142
int(* plugin_theme_init_func_t)(void)
Definition: plugins.h:53
watch_type_t
Definition: plugins.h:111
int __count
Definition: plugins.h:104
int(* plugin_destroy_func_t)(void)
Definition: plugins.h:52
struct queryx * next
Definition: plugins.h:98
query_handler_func_t * handler
Definition: plugins.h:146
int __is_session
Definition: plugins.h:143
void remote_plugins_destroy()
query_t * query_connect_idXXX(plugin_t *plugin, const int id, query_handler_func_t *handler, void *data)
Definition: plugins.c:323
int removed
Definition: plugins.h:133
plugin_t * remote_plugin_load(const char *name, int prio)
void watch_free(watch_t *w)
Definition: sources.c:1482
int query_handler_func_t(void *data, va_list ap)
Definition: plugins.h:135
plugin_t * plugin
Definition: plugins.h:101
#define WATCHER(x)
Definition: plugins.h:119
#define params(x)
Definition: irc.c:1893
watch_type_t
Definition: sources.h:61
int watch_remove(plugin_t *plugin, int fd, watch_type_t type)
Definition: sources.c:1572
int id
Definition: plugins.h:100
int plugin_register(plugin_t *, int prio)
Definition: plugins.c:440
plugin_class_t
Definition: plugins.h:40
void * __dl
Definition: plugins.h:69
time_t __started
Definition: plugins.h:132
int plugin_abi_version(int plugin_abi_ver, const char *plugin_name)
Definition: plugins.c:797
plugin_destroy_func_t destroy
Definition: plugins.h:80
plugin_t * plugin
Definition: plugins.h:144
query_handler_func_t * handler
Definition: plugins.h:103
watch_t * watch_add(plugin_t *plugin, int fd, watch_type_t type, watcher_handler_func_t *handler, void *data)
Definition: sources.c:1509
Definition: plugins.h:113
Definition: ekg_hash_benchmark.c:14
Definition: plugins.h:116
int plugin_unregister(plugin_t *)
Definition: plugins.c:475
struct plugin * next
Definition: plugins.h:63
void theme_init()
Definition: themes.c:1447
Definition: plugins.h:140
Definition: plugins.h:112
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 * data
Definition: plugins.h:102
list_t watches
Definition: plugins.c:52
#define QUERY(x)
Definition: plugins.h:94
void * watch_handler_func_t
Definition: plugins.h:150
Definition: plugins.h:115
plugin_class_t pclass
Definition: plugins.h:79
int plugin_load(const char *name, int prio, int quiet)
Definition: plugins.c:169