X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fplugin.h;h=6c2c41eac8da97bda1ff962014af3019ecc490e9;hb=ba6497bdffb6a225eb6c86c8b8fa57a2520f0c5f;hp=b90811cf93cc5c98e99fc090e588a28bce18dc63;hpb=568420ac172981edccb8587cc9651952fe350365;p=collectd.git diff --git a/src/plugin.h b/src/plugin.h index b90811cf..6c2c41ea 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -52,11 +52,6 @@ #define NOTIF_WARNING 2 #define NOTIF_OKAY 4 -#define FILTER_NOWRITE 1 -#define FILTER_NOTHRESHOLD_CHECK 2 -/* FILTER_IGNORE has to equal the bitwise or of all other filter flags */ -#define FILTER_IGNORE (FILTER_NOWRITE | FILTER_NOTHRESHOLD_CHECK) - /* * Public data types */ @@ -119,12 +114,12 @@ typedef struct notification_meta_s enum notification_meta_type_e type; union { - const char *value_string; - int64_t value_signed_int; - uint64_t value_unsigned_int; - double value_double; - bool value_boolean; - }; + const char *nm_string; + int64_t nm_signed_int; + uint64_t nm_unsigned_int; + double nm_double; + bool nm_boolean; + } nm_value; struct notification_meta_s *next; } notification_meta_t; @@ -181,8 +176,39 @@ int plugin_load (const char *name); void plugin_init_all (void); void plugin_read_all (void); +int plugin_read_all_once (void); void plugin_shutdown_all (void); +/* + * NAME + * plugin_write + * + * DESCRIPTION + * Calls the write function of the given plugin with the provided data set and + * value list. It differs from `plugin_dispatch_value' in that it does not + * update the cache, does not do threshold checking, call the chain subsystem + * and so on. It looks up the requested plugin and invokes the function, end + * of story. + * + * ARGUMENTS + * plugin Name of the plugin. If NULL, the value is sent to all registered + * write functions. + * ds Pointer to the data_set_t structure. If NULL, the data set is + * looked up according to the `type' member in the `vl' argument. + * vl The actual value to be processed. Must not be NULL. + * + * RETURN VALUE + * Returns zero upon success or non-zero if an error occurred. If `plugin' is + * NULL and more than one plugin is called, an error is only returned if *all* + * plugins fail. + * + * NOTES + * This is the function used by the `write' built-in target. May be used by + * other target plugins. + */ +int plugin_write (const char *plugin, + const data_set_t *ds, const value_list_t *vl); + int plugin_flush (const char *plugin, int timeout, const char *identifier); /* @@ -201,8 +227,6 @@ int plugin_register_read (const char *name, int (*callback) (void)); int plugin_register_write (const char *name, int (*callback) (const data_set_t *ds, const value_list_t *vl)); -int plugin_register_filter (const char *name, - int (*callback) (const data_set_t *ds, value_list_t *vl)); int plugin_register_flush (const char *name, int (*callback) (const int timeout, const char *identifier)); int plugin_register_shutdown (char *name, @@ -218,7 +242,6 @@ 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_write (const char *name); -int plugin_unregister_filter (const char *name); int plugin_unregister_flush (const char *name); int plugin_unregister_shutdown (const char *name); int plugin_unregister_data_set (const char *name); @@ -241,6 +264,7 @@ int plugin_unregister_notification (const char *name); * function. */ int plugin_dispatch_values (value_list_t *vl); +int plugin_dispatch_values_async (const value_list_t *vl); int plugin_dispatch_notification (const notification_t *notif); @@ -278,6 +302,6 @@ int plugin_notification_meta_add_boolean (notification_t *n, int plugin_notification_meta_copy (notification_t *dst, const notification_t *src); -int plugin_notification_meta_free (notification_t *n); +int plugin_notification_meta_free (notification_meta_t *n); #endif /* PLUGIN_H */