diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 02:57:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 02:57:58 +0000 |
commit | be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97 (patch) | |
tree | 9754ff1ca740f6346cf8483ec915d4054bc5da2d /fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_confval.h | |
parent | Initial commit. (diff) | |
download | netdata-be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97.tar.xz netdata-be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97.zip |
Adding upstream version 1.44.3.upstream/1.44.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_confval.h')
-rw-r--r-- | fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_confval.h | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_confval.h b/fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_confval.h new file mode 100644 index 00000000..3f2bad54 --- /dev/null +++ b/fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_confval.h @@ -0,0 +1,97 @@ +/* + * librdkafka - Apache Kafka C library + * + * Copyright (c) 2014-2018 Magnus Edenhill + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _RDKAFKA_CONFVAL_H_ +#define _RDKAFKA_CONFVAL_H_ +/** + * @name Next generation configuration values + * @{ + * + */ + +/** + * @brief Configuration value type + */ +typedef enum rd_kafka_confval_type_t { + RD_KAFKA_CONFVAL_INT, + RD_KAFKA_CONFVAL_STR, + RD_KAFKA_CONFVAL_PTR, +} rd_kafka_confval_type_t; + +/** + * @brief Configuration value (used by AdminOption). + * Comes with a type, backed by a union, and a flag to indicate + * if the value has been set or not. + */ +typedef struct rd_kafka_confval_s { + const char *name; /**< Property name */ + rd_kafka_confval_type_t valuetype; /**< Value type, maps to union.*/ + int is_set; /**< Value has been set. */ + int is_enabled; /**< Confval is enabled. */ + union { + struct { + int v; /**< Current value */ + int vmin; /**< Minimum value (inclusive) */ + int vmax; /**< Maximum value (inclusive) */ + int vdef; /**< Default value */ + } INT; + struct { + char *v; /**< Current value */ + int allowempty; /**< Allow empty string as value */ + size_t minlen; /**< Minimum string length excl \0 */ + size_t maxlen; /**< Maximum string length excl \0 */ + const char *vdef; /**< Default value */ + } STR; + void *PTR; /**< Pointer */ + } u; +} rd_kafka_confval_t; + + + +void rd_kafka_confval_init_int(rd_kafka_confval_t *confval, + const char *name, + int vmin, + int vmax, + int vdef); +void rd_kafka_confval_init_ptr(rd_kafka_confval_t *confval, const char *name); +void rd_kafka_confval_disable(rd_kafka_confval_t *confval, const char *name); + +rd_kafka_resp_err_t rd_kafka_confval_set_type(rd_kafka_confval_t *confval, + rd_kafka_confval_type_t valuetype, + const void *valuep, + char *errstr, + size_t errstr_size); + +int rd_kafka_confval_get_int(const rd_kafka_confval_t *confval); +const char *rd_kafka_confval_get_str(const rd_kafka_confval_t *confval); +void *rd_kafka_confval_get_ptr(const rd_kafka_confval_t *confval); + +/**@}*/ + + +#endif /* _RDKAFKA_CONFVAL_H_ */ |