X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdaemon%2Fplugin.h;h=70a22326e09f7b3f492877711e6b5152e5e369c8;hb=10b10a6718dbb87c6890d4bc821a6e21c8b7b527;hp=d773e09478b818a09dd898c110dfb923532f87ac;hpb=4c41ea66bcafbb7654af1e4d656a3a542b8d56e8;p=collectd.git diff --git a/src/daemon/plugin.h b/src/daemon/plugin.h index d773e094..a63f5cdc 100644 --- a/src/daemon/plugin.h +++ b/src/daemon/plugin.h @@ -97,7 +97,7 @@ typedef union value_u value_t; struct value_list_s { value_t *values; - int values_len; + size_t values_len; cdtime_t time; cdtime_t interval; char host[DATA_MAX_NAME_LEN]; @@ -125,7 +125,7 @@ typedef struct data_source_s data_source_t; struct data_set_s { char type[DATA_MAX_NAME_LEN]; - int ds_num; + size_t ds_num; data_source_t *ds; }; typedef struct data_set_s data_set_t; @@ -177,6 +177,8 @@ typedef struct user_data_s user_data_t; struct plugin_ctx_s { cdtime_t interval; + cdtime_t flush_interval; + cdtime_t flush_timeout; }; typedef struct plugin_ctx_s plugin_ctx_t; @@ -293,7 +295,7 @@ int plugin_register_read (const char *name, * "plugin_register_complex_read" returns an error (non-zero). */ int plugin_register_complex_read (const char *group, const char *name, plugin_read_cb callback, - const struct timespec *interval, + cdtime_t interval, user_data_t *user_data); int plugin_register_write (const char *name, plugin_write_cb callback, user_data_t *user_data); @@ -322,6 +324,17 @@ int plugin_unregister_data_set (const char *name); int plugin_unregister_log (const char *name); int plugin_unregister_notification (const char *name); +/* + * NAME + * plugin_log_available_writers + * + * DESCRIPTION + * This function can be called to output a list of _all_ registered + * writers to the logfacility. + * Since some writers dynamically build their name it can be hard for + * the configuring person to know it. This function will fill this gap. + */ +void plugin_log_available_writers (void); /* * NAME @@ -344,7 +357,7 @@ int plugin_dispatch_values (value_list_t const *vl); * plugin_dispatch_multivalue * * SYNOPSIS - * plugin_dispatch_multivalue (vl, 1, + * plugin_dispatch_multivalue (vl, 1, DS_TYPE_GAUGE, * "free", 42.0, * "used", 58.0, * NULL); @@ -356,8 +369,16 @@ int plugin_dispatch_values (value_list_t const *vl); * calculated and dispatched, rather than the absolute values. Values that are * NaN are dispatched as NaN and will not influence the total. * - * The variadic arguments is a list of type_instance / gauge pairs, that are - * interpreted as type "char const *" and "gauge_t". The last argument must be + * The variadic arguments is a list of type_instance / type pairs, that are + * interpreted as type "char const *" and type, encoded by their corresponding + * "store_type": + * + * - "gauge_t" when "DS_TYPE_GAUGE" + * - "absolute_t" when "DS_TYPE_ABSOLUTE" + * - "derive_t" when "DS_TYPE_DERIVE" + * - "counter_t" when "DS_TYPE_COUNTER" + * + * The last argument must be * a NULL pointer to signal end-of-list. * * RETURNS @@ -365,7 +386,7 @@ int plugin_dispatch_values (value_list_t const *vl); */ __attribute__((sentinel)) int plugin_dispatch_multivalue (value_list_t const *vl, - _Bool store_percentage, ...); + _Bool store_percentage, int store_type, ...); int plugin_dispatch_missing (const value_list_t *vl); @@ -438,4 +459,10 @@ cdtime_t plugin_get_interval (void); int plugin_thread_create (pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); +/* + * Plugins need to implement this + */ + +void module_register (void); + #endif /* PLUGIN_H */