X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fconfigfile.h;h=432e09f5ba73f0663669dfe0f6bae7f65e154f48;hb=7665e23080bb08021efff821ed160c4360ed2cca;hp=0bb11b2a4384b8e7bf697a56e401267728ba1df4;hpb=601abecb59b6041e84f11877345a98efba7b651b;p=collectd.git diff --git a/src/configfile.h b/src/configfile.h index 0bb11b2a..432e09f5 100644 --- a/src/configfile.h +++ b/src/configfile.h @@ -1,3 +1,5 @@ +#ifndef CONFIGFILE_H +#define CONFIGFILE_H /** * collectd - src/configfile.h * Copyright (C) 2005,2006 Florian octo Forster @@ -20,8 +22,8 @@ * Florian octo Forster **/ -#ifndef CONFIGFILE_H -#define CONFIGFILE_H +#include "collectd.h" +#include "liboconfig/oconfig.h" /* * DESCRIPTION @@ -31,7 +33,8 @@ * `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 @@ -57,24 +60,11 @@ void cf_unregister (char *type); * 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 @@ -93,4 +83,29 @@ char *cf_get_option (const char *key, char *def); */ 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 string and copies it to the provided buffer. + * Assures null-termination. */ +int cf_util_get_string_buffer (const oconfig_item_t *ci, char *buffer, + size_t buffer_size); + +/* Assures the config option is a number and returns it as an int. */ +int cf_util_get_int (const oconfig_item_t *ci, int *ret_value); + +/* 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) */