+#ifndef CONFIGFILE_H
+#define CONFIGFILE_H
/**
* collectd - src/configfile.h
* Copyright (C) 2005,2006 Florian octo Forster
* Florian octo Forster <octo at verplant.org>
**/
-#ifndef CONFIGFILE_H
-#define CONFIGFILE_H
+#include "collectd.h"
+#include "liboconfig/oconfig.h"
/*
* DESCRIPTION
* `type' Name of the plugin (must be the same as passed to
* `plugin_register'
*/
-void cf_unregister (char *type);
+void cf_unregister (const char *type);
+void cf_unregister_complex (const char *type);
/*
* DESCRIPTION
* exists for each `type' at any time. This means that `cf_register' may be
* called multiple times, but only the last call will have an effect.
*/
-void cf_register (char *type,
- int (*callback) (char *, char *),
- char **keys, int keys_num);
+void cf_register (const char *type,
+ int (*callback) (const char *, const char *),
+ const char **keys, int keys_num);
-/*
- * DESCRIPTION
- * `cf_get_option' returns various general options.
- *
- * PARAMETERS
- * `key' Name of the option to query.
- * `def' Pointer to return as default value.
- *
- * RETURN VALUE
- * The pointer returned is part of an internal structure and may not be
- * changed. If the option is not found for whatever reason (wrong key, option
- * not allowed for currently selected mode, ...) `NULL' is returned.
- */
-char *cf_get_option (const char *key, char *def);
+int cf_register_complex (const char *type, int (*callback) (oconfig_item_t *));
/*
* DESCRIPTION
*/
int cf_read (char *filename);
+int global_option_set (const char *option, const char *value);
+const char *global_option_get (const char *option);
+
+/* Assures the config option is a string, duplicates it and returns the copy in
+ * "ret_string". If necessary "*ret_string" is freed first. Returns zero upon
+ * success. */
+int cf_util_get_string (const oconfig_item_t *ci, char **ret_string);
+
+/* Assures the config option is a boolean and assignes it to `ret_bool'.
+ * Otherwise, `ret_bool' is not changed and non-zero is returned. */
+int cf_util_get_boolean (const oconfig_item_t *ci, _Bool *ret_bool);
+
+/* Assures that the config option is a string. The string is then converted to
+ * a port number using `service_name_to_port_number' and returned. Returns the
+ * port number in the range [1-65535] or less than zero upon failure. */
+int cf_util_get_port_number (const oconfig_item_t *ci);
+
#endif /* defined(CONFIGFILE_H) */