X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fplugin.h;h=1eb9feca0731d27e76d985fc29a26903b1457645;hb=16baafe97586dd469a9b14a91c2c24762367d6f2;hp=3088e06e6cb70bc7b6a659ae0dfec680a8b99cb1;hpb=1494e5a7ee03cff645528fc7143dae2a2f04a7ea;p=collectd.git diff --git a/src/plugin.h b/src/plugin.h index 3088e06e..1eb9feca 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -136,6 +136,18 @@ typedef struct notification_s notification_meta_t *meta; } notification_t; +struct user_data_s +{ + void *data; + void (*free_func) (void *); +}; +typedef struct user_data_s user_data_t; + +/* + * Callback types + */ +typedef int (*plugin_read_cb) (user_data_t *); + /* * NAME * plugin_set_dir @@ -225,6 +237,8 @@ int plugin_register_init (const char *name, int (*callback) (void)); int plugin_register_read (const char *name, int (*callback) (void)); +int plugin_register_complex_read (const char *name, + plugin_read_cb callback, user_data_t *user_data); int plugin_register_write (const char *name, int (*callback) (const data_set_t *ds, const value_list_t *vl)); int plugin_register_flush (const char *name, @@ -241,6 +255,7 @@ int plugin_unregister_config (const char *name); int plugin_unregister_complex_config (const char *name); int plugin_unregister_init (const char *name); int plugin_unregister_read (const char *name); +int plugin_unregister_complex_read (const char *name, void **user_data); int plugin_unregister_write (const char *name); int plugin_unregister_flush (const char *name); int plugin_unregister_shutdown (const char *name);