X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdaemon%2Fplugin.h;h=a63f5cdc6e5e189e0461cf982f117e6d48b55a0f;hb=41288c6a9ed050b41ad47184aa1b53668c3588cc;hp=b1adb527bb46536334af708275e1cbd0232a4f1d;hpb=f0b5610723ae8962ae264f84210f8bac483bcd20;p=collectd.git diff --git a/src/daemon/plugin.h b/src/daemon/plugin.h index b1adb527..5a4e4c75 100644 --- a/src/daemon/plugin.h +++ b/src/daemon/plugin.h @@ -1,5 +1,5 @@ /** - * collectd - src/plugin.h + * collectd - src/daemon/plugin.h * Copyright (C) 2005-2014 Florian octo Forster * * Permission is hereby granted, free of charge, to any person obtaining a @@ -29,17 +29,18 @@ #define PLUGIN_H #include "collectd.h" + #include "configfile.h" #include "meta_data.h" #include "utils_time.h" -#if HAVE_PTHREAD_H -# include -#endif +#include #define PLUGIN_FLAGS_GLOBAL 0x0001 -#define DATA_MAX_NAME_LEN 64 +#ifndef DATA_MAX_NAME_LEN +# define DATA_MAX_NAME_LEN 128 +#endif #define DS_TYPE_COUNTER 0 #define DS_TYPE_GAUGE 1 @@ -80,6 +81,16 @@ /* * Public data types */ +struct identifier_s +{ + char *host; + char *plugin; + char *plugin_instance; + char *type; + char *type_instance; +}; +typedef struct identifier_s identifier_t; + typedef unsigned long long counter_t; typedef double gauge_t; typedef int64_t derive_t; @@ -109,9 +120,7 @@ struct value_list_s }; typedef struct value_list_s value_list_t; -#define VALUE_LIST_INIT { NULL, 0, 0, plugin_get_interval (), \ - "localhost", "", "", "", "", NULL } -#define VALUE_LIST_STATIC { NULL, 0, 0, 0, "localhost", "", "", "", "", NULL } +#define VALUE_LIST_INIT { .values = NULL, .meta = NULL } struct data_source_s { @@ -200,7 +209,6 @@ typedef void (*plugin_log_cb) (int severity, const char *message, typedef int (*plugin_shutdown_cb) (void); typedef int (*plugin_notification_cb) (const notification_t *, user_data_t *); - /* * NAME * plugin_set_dir @@ -240,10 +248,10 @@ void plugin_set_dir (const char *dir); */ int plugin_load (const char *name, uint32_t flags); -void plugin_init_all (void); +int plugin_init_all (void); void plugin_read_all (void); int plugin_read_all_once (void); -void plugin_shutdown_all (void); +int plugin_shutdown_all (void); /* * NAME @@ -296,20 +304,20 @@ int plugin_register_read (const char *name, int plugin_register_complex_read (const char *group, const char *name, plugin_read_cb callback, cdtime_t interval, - user_data_t *user_data); + user_data_t const *user_data); int plugin_register_write (const char *name, - plugin_write_cb callback, user_data_t *user_data); + plugin_write_cb callback, user_data_t const *user_data); int plugin_register_flush (const char *name, - plugin_flush_cb callback, user_data_t *user_data); + plugin_flush_cb callback, user_data_t const *user_data); int plugin_register_missing (const char *name, - plugin_missing_cb callback, user_data_t *user_data); + plugin_missing_cb callback, user_data_t const *user_data); int plugin_register_shutdown (const char *name, plugin_shutdown_cb callback); int plugin_register_data_set (const data_set_t *ds); int plugin_register_log (const char *name, - plugin_log_cb callback, user_data_t *user_data); + plugin_log_cb callback, user_data_t const *user_data); int plugin_register_notification (const char *name, - plugin_notification_cb callback, user_data_t *user_data); + plugin_notification_cb callback, user_data_t const *user_data); int plugin_unregister_config (const char *name); int plugin_unregister_complex_config (const char *name); @@ -334,7 +342,7 @@ int plugin_unregister_notification (const char *name); * 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 plugin_log_available_writers (void); /* * NAME @@ -459,4 +467,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 */