Merge remote-tracking branch 'github/pr/2135'
[collectd.git] / src / daemon / plugin.h
index 8bdb4c2..4f877e0 100644 (file)
@@ -36,8 +36,6 @@
 
 #include <pthread.h>
 
-#define PLUGIN_FLAGS_GLOBAL 0x0001
-
 #ifndef DATA_MAX_NAME_LEN
 #define DATA_MAX_NAME_LEN 128
 #endif
 /*
  * 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;
@@ -111,9 +118,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 }
+  { .values = NULL, .meta = NULL }
 
 struct data_source_s {
   char name[DATA_MAX_NAME_LEN];
@@ -219,7 +224,7 @@ void plugin_set_dir(const char *dir);
  *
  * ARGUMENTS
  *  `name'      Name of the plugin to load.
- *  `flags'     Hints on how to handle this plugin.
+ *  `global'    Make this plugins symbols available for other shared libraries.
  *
  * RETURN VALUE
  *  Returns zero upon success, a value greater than zero if no plugin was found
@@ -229,7 +234,7 @@ void plugin_set_dir(const char *dir);
  *  Re-loading an already loaded module is detected and zero is returned in
  *  this case.
  */
-int plugin_load(const char *name, uint32_t flags);
+int plugin_load(const char *name, _Bool global);
 
 int plugin_init_all(void);
 void plugin_read_all(void);
@@ -440,7 +445,8 @@ cdtime_t plugin_get_interval(void);
  */
 
 int plugin_thread_create(pthread_t *thread, const pthread_attr_t *attr,
-                         void *(*start_routine)(void *), void *arg);
+                         void *(*start_routine)(void *), void *arg,
+                         char const *name);
 
 /*
  * Plugins need to implement this