X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fplugin.h;h=3088e06e6cb70bc7b6a659ae0dfec680a8b99cb1;hb=218635ab44a8533ef5b23fd1ae78be761ff0600c;hp=3bf7e4c1d01174f5f95671f9fd1ea6ed9943eeeb;hpb=654783aed1fab02766a9cc036e859799e01f6f9e;p=collectd.git diff --git a/src/plugin.h b/src/plugin.h index 3bf7e4c1..3088e06e 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -114,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; @@ -176,10 +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); -void plugin_flush_all (int timeout); -int plugin_flush_one (int timeout, const char *name); +/* + * 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); /* @@ -272,6 +301,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 */