X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fplugin.h;h=e54b27d69e554628060e08f686e18aa76a45fe70;hb=9ce08d6e5e67d89e29a21883bdca5b79d1f908a9;hp=3088e06e6cb70bc7b6a659ae0dfec680a8b99cb1;hpb=a1ae4b5afaf3207a7070b85f802b41b32c0b9a20;p=collectd.git diff --git a/src/plugin.h b/src/plugin.h index 3088e06e..e54b27d6 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -136,6 +136,28 @@ 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_init_cb) (void); +typedef int (*plugin_read_cb) (user_data_t *); +typedef int (*plugin_write_cb) (const data_set_t *, const value_list_t *, + user_data_t *); +typedef int (*plugin_flush_cb) (int timeout, const char *identifier, + user_data_t *); +typedef void (*plugin_log_cb) (int severity, const char *message, + user_data_t *); +typedef int (*plugin_shutdown_cb) (void); +typedef int (*plugin_notification_cb) (const notification_t *, + user_data_t *); + /* * NAME * plugin_set_dir @@ -222,25 +244,30 @@ int plugin_register_config (const char *name, int plugin_register_complex_config (const char *type, int (*callback) (oconfig_item_t *)); int plugin_register_init (const char *name, - int (*callback) (void)); + plugin_init_cb callback); int plugin_register_read (const char *name, int (*callback) (void)); +int plugin_register_complex_read (const char *name, + plugin_read_cb callback, + const struct timespec *interval, + user_data_t *user_data); int plugin_register_write (const char *name, - int (*callback) (const data_set_t *ds, const value_list_t *vl)); + plugin_write_cb callback, user_data_t *user_data); int plugin_register_flush (const char *name, - int (*callback) (const int timeout, const char *identifier)); + plugin_flush_cb callback, user_data_t *user_data); int plugin_register_shutdown (char *name, - int (*callback) (void)); + plugin_shutdown_cb callback); int plugin_register_data_set (const data_set_t *ds); -int plugin_register_log (char *name, - void (*callback) (int, const char *)); +int plugin_register_log (const char *name, + plugin_log_cb callback, user_data_t *user_data); int plugin_register_notification (const char *name, - int (*callback) (const notification_t *notif)); + plugin_notification_cb callback, user_data_t *user_data); 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);