diff --git a/.github/workflows/test-extension-compatibility.yml b/.github/workflows/test-extension-compatibility.yml index f183c466..2f622119 100644 --- a/.github/workflows/test-extension-compatibility.yml +++ b/.github/workflows/test-extension-compatibility.yml @@ -14,19 +14,19 @@ jobs: php: - '8.1' librdkafka: - - 'v1.9.2' + - 'v2.6.0' rdkafka: - '6.x' services: zookeeper: - image: confluentinc/cp-zookeeper:7.5.3 + image: confluentinc/cp-zookeeper:7.7.1 ports: - 2181:2181 env: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka: - image: confluentinc/cp-kafka:7.5.3 + image: confluentinc/cp-kafka:7.7.1 ports: - 9092:9092 env: diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index e49ba23d..c912f397 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -15,6 +15,7 @@ jobs: - '8.1' - '8.2' - '8.3' + - '8.4' defaults: run: shell: bash @@ -46,7 +47,7 @@ jobs: php-version: ${{ matrix.php }} coverage: none extensions: ffi, pcntl - ini-values: "${{ matrix.php == '8.3' && 'zend.max_allowed_stack_size=256k' || '' }}" + ini-values: "${{ (matrix.php == '8.3' || matrix.php == '8.4') && 'zend.max_allowed_stack_size=256k' || '' }}" - name: Install dependencies uses: ramsey/composer-install@v2 diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 87cd4095..15e91ee5 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -15,8 +15,9 @@ jobs: - '8.1' - '8.2' - '8.3' + - '8.4' librdkafka: - - '2.3.0' + - '2.6.0' defaults: run: shell: bash @@ -35,9 +36,9 @@ jobs: run: | nuget install librdkafka.redist -Version ${{ matrix.librdkafka }} choco install --no-progress wget nssm - wget -q -O kafka_2.13-3.6.1.tgz http://ftp.fau.de/apache/kafka/3.6.1/kafka_2.13-3.6.1.tgz - tar -xzf kafka_2.13-3.6.1.tgz - cp -pr kafka_2.13-3.6.1 /c/kafka + wget -q -O kafka_2.13-3.8.0.tgz http://ftp.fau.de/apache/kafka/3.8.0/kafka_2.13-3.8.0.tgz + tar -xzf kafka_2.13-3.8.0.tgz + cp -pr kafka_2.13-3.8.0 /c/kafka sed -i "s|broker.id=0|broker.id=111|g" /c/kafka/config/server.properties nssm install zookeeper /c/kafka/bin/windows/zookeeper-server-start.bat /c/kafka/config/zookeeper.properties nssm set zookeeper AppExit Default Exit diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e1fd2fc4..24825c0f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,11 +13,11 @@ jobs: matrix: include: - php: '8.1' - librdkafka: 'v2.3.0' + librdkafka: 'v2.6.0' publish: true exclude: - php: '8.1' - librdkafka: 'v2.3.0' + librdkafka: 'v2.6.0' publish: false php: - '7.4' @@ -25,7 +25,11 @@ jobs: - '8.1' - '8.2' - '8.3' + - '8.4' librdkafka: + - 'v2.6.0' + - 'v2.5.3' + - 'v2.4.0' - 'v2.3.0' - 'v2.2.0' - 'v2.1.1' @@ -46,14 +50,14 @@ jobs: continue-on-error: ${{ matrix.librdkafka == 'master' }} services: zookeeper: - image: confluentinc/cp-zookeeper:7.5.3 + image: confluentinc/cp-zookeeper:7.7.1 ports: - 2181:2181 env: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka: - image: confluentinc/cp-kafka:7.5.3 + image: confluentinc/cp-kafka:7.7.1 ports: - 9092:9092 env: diff --git a/CHANGELOG.md b/CHANGELOG.md index 310bf162..e0367900 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,12 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [0.6.0] +This pre-release improves compatible with the [PHP RdKafka extension](https://github.com/arnaud-lb/php-rdkafka) ^5.0 and ^6.0. + ### Added -- Add support for PHP 8.3 and librdkafka 2.1.0, 2.1.1, 2.2.0, 2.3.0 +- Add support for PHP 8.3 and 8.4 +- Add support for librdkafka 2.1.0, 2.1.1, 2.2.0, 2.3.0, 2.4.0, 2.5.0, 2.5.3, 2.6.0 ### Fixed diff --git a/composer.json b/composer.json index b646a7dd..69ecd829 100644 --- a/composer.json +++ b/composer.json @@ -42,7 +42,7 @@ "ext-rdkafka": "*" }, "require-dev": { - "phpunit/phpunit": "^9.4", + "phpunit/phpunit": "^9.4 || ^10.5", "ircmaxell/php-c-parser": "dev-master#fd8f5efefd0fcc6c5119d945694acaa3a6790ada", "symplify/easy-coding-standard": "^12.0", "klitsche/ffigen": "0.8.1", diff --git a/docker-compose.yml b/docker-compose.yml index a06c362a..c02985f4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,9 @@ -version: '3' - networks: php-rdkafka-ffi: services: zookeeper: - image: confluentinc/cp-zookeeper:7.5.3 + image: confluentinc/cp-zookeeper:7.7.1 ports: - 2181:2181 environment: @@ -15,7 +13,7 @@ services: - php-rdkafka-ffi kafka: - image: confluentinc/cp-kafka:7.5.3 + image: confluentinc/cp-kafka:7.7.1 ports: - 9092:9092 hostname: kafka @@ -102,6 +100,18 @@ services: networks: - php-rdkafka-ffi + php84: + build: + context: resources/docker/php84-librdkafka-ffi + image: php84-librdkafka-ffi:latest + volumes: + - .:/app + - ./resources/docker/php84-librdkafka-ffi/php.ini:/usr/local/etc/php/php.ini + depends_on: + - kafka + networks: + - php-rdkafka-ffi + mkdocs: build: context: resources/docker/mkdocs-material diff --git a/resources/docker/php74-librdkafka-ffi/Dockerfile b/resources/docker/php74-librdkafka-ffi/Dockerfile index c6825a05..86ce2999 100644 --- a/resources/docker/php74-librdkafka-ffi/Dockerfile +++ b/resources/docker/php74-librdkafka-ffi/Dockerfile @@ -1,7 +1,7 @@ FROM php:7.4-cli # enable ffi and install librdkafka -ARG LIBRDKAFKA_VERSION=v2.3.0 +ARG LIBRDKAFKA_VERSION=v2.6.0 ENV LIBRDKAFKA_VERSION=$LIBRDKAFKA_VERSION RUN set -e; \ apt-get update; \ diff --git a/resources/docker/php80-librdkafka-ffi/Dockerfile b/resources/docker/php80-librdkafka-ffi/Dockerfile index 780d61af..76f1aa70 100644 --- a/resources/docker/php80-librdkafka-ffi/Dockerfile +++ b/resources/docker/php80-librdkafka-ffi/Dockerfile @@ -1,7 +1,7 @@ FROM php:8.0-cli # enable ffi and install librdkafka -ARG LIBRDKAFKA_VERSION=v2.3.0 +ARG LIBRDKAFKA_VERSION=v2.6.0 ENV LIBRDKAFKA_VERSION=$LIBRDKAFKA_VERSION RUN set -e; \ apt-get update; \ diff --git a/resources/docker/php81-librdkafka-ffi/Dockerfile b/resources/docker/php81-librdkafka-ffi/Dockerfile index 68e8bdc0..dcb4f653 100644 --- a/resources/docker/php81-librdkafka-ffi/Dockerfile +++ b/resources/docker/php81-librdkafka-ffi/Dockerfile @@ -1,7 +1,7 @@ FROM php:8.1-cli # enable ffi and install librdkafka -ARG LIBRDKAFKA_VERSION=v2.3.0 +ARG LIBRDKAFKA_VERSION=v2.6.0 ENV LIBRDKAFKA_VERSION=$LIBRDKAFKA_VERSION RUN set -e; \ apt-get update; \ diff --git a/resources/docker/php82-librdkafka-ffi/Dockerfile b/resources/docker/php82-librdkafka-ffi/Dockerfile index a3f00f26..75bd4193 100644 --- a/resources/docker/php82-librdkafka-ffi/Dockerfile +++ b/resources/docker/php82-librdkafka-ffi/Dockerfile @@ -1,7 +1,7 @@ FROM php:8.2-cli # enable ffi and install librdkafka -ARG LIBRDKAFKA_VERSION=v2.3.0 +ARG LIBRDKAFKA_VERSION=v2.6.0 ENV LIBRDKAFKA_VERSION=$LIBRDKAFKA_VERSION RUN set -e; \ apt-get update; \ diff --git a/resources/docker/php83-librdkafka-ffi/Dockerfile b/resources/docker/php83-librdkafka-ffi/Dockerfile index e5b8012e..a5370ced 100644 --- a/resources/docker/php83-librdkafka-ffi/Dockerfile +++ b/resources/docker/php83-librdkafka-ffi/Dockerfile @@ -1,7 +1,7 @@ FROM php:8.3-cli # enable ffi and install librdkafka -ARG LIBRDKAFKA_VERSION=v2.3.0 +ARG LIBRDKAFKA_VERSION=v2.6.0 ENV LIBRDKAFKA_VERSION=$LIBRDKAFKA_VERSION RUN set -e; \ apt-get update; \ diff --git a/resources/docker/php84-librdkafka-ffi/Dockerfile b/resources/docker/php84-librdkafka-ffi/Dockerfile new file mode 100644 index 00000000..22a1b1ae --- /dev/null +++ b/resources/docker/php84-librdkafka-ffi/Dockerfile @@ -0,0 +1,47 @@ +FROM php:8.4-rc-cli + +# enable ffi and install librdkafka +ARG LIBRDKAFKA_VERSION=v2.6.0 +ENV LIBRDKAFKA_VERSION=$LIBRDKAFKA_VERSION +RUN set -e; \ + apt-get update; \ + apt-get install -y --no-install-recommends git zip unzip gdb libffi-dev libc6-dev; \ + docker-php-ext-configure ffi; \ + docker-php-ext-install -j$(nproc) ffi pcntl; \ + git clone --branch "${LIBRDKAFKA_VERSION}" --depth 1 https://github.com/confluentinc/librdkafka.git /tmp/librdkafka; \ + cd /tmp/librdkafka; \ + ./configure; \ + make; \ + make install; \ + ldconfig; \ + apt-get autoremove -y; \ + rm -rf /var/lib/apt/lists/*; \ + rm -rf /tmp/*; + +# install xdebug +ARG XDEBUG_VERSION=beta +RUN pecl install xdebug-${XDEBUG_VERSION}; \ + docker-php-ext-enable xdebug; + +# install rdkafka ext - this is just required to run the compatibility tests +ARG RDKAFKA_EXT_VERSION=6.x +RUN git clone --branch "$RDKAFKA_EXT_VERSION" --depth 1 https://github.com/arnaud-lb/php-rdkafka.git /tmp/php-rdkafka; \ + cd /tmp/php-rdkafka; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + rm -rf /tmp/*; + +ENV COMPOSER_HOME /tmp +ENV COMPOSER_ALLOW_SUPERUSER 1 +COPY --from=composer /usr/bin/composer /usr/bin/composer + +RUN useradd -Ms /bin/bash --user-group --uid 2000 phpdev; \ + mkdir /app; \ + chown phpdev -R /app; \ + chown phpdev -R /tmp; + +USER phpdev + +WORKDIR /app diff --git a/resources/docker/php84-librdkafka-ffi/php.ini b/resources/docker/php84-librdkafka-ffi/php.ini new file mode 100644 index 00000000..436b0b0b --- /dev/null +++ b/resources/docker/php84-librdkafka-ffi/php.ini @@ -0,0 +1 @@ +zend.max_allowed_stack_size=256k \ No newline at end of file diff --git a/resources/ffigen/LibrdkafkaHeaderFiles.php b/resources/ffigen/LibrdkafkaHeaderFiles.php index cb3b0f9a..93b594d5 100644 --- a/resources/ffigen/LibrdkafkaHeaderFiles.php +++ b/resources/ffigen/LibrdkafkaHeaderFiles.php @@ -10,7 +10,7 @@ class LibrdkafkaHeaderFiles { - private const RELEASE_URL = 'https://api.github.com/repos/confluentinc/librdkafka/releases'; + private const RELEASE_URL = 'https://api.github.com/repos/confluentinc/librdkafka/releases?per_page=100'; private const DOWNLOAD_BASE_URL_TEMPLATE = 'https://raw.githubusercontent.com/confluentinc/librdkafka/%s/src'; private ConfigInterface $config; @@ -94,7 +94,7 @@ private function loadSupportedVersions(): array foreach ($releases as $release) { if ($release->prerelease === false) { $version = str_replace('v', '', $release->tag_name); - if (Comparator::greaterThanOrEqualTo($version, '1.0.0') && Comparator::lessThan($version, '2.4.0')) { + if (Comparator::greaterThanOrEqualTo($version, '1.0.0') && Comparator::lessThan($version, '2.7.0')) { $supportedVersions[$version] = sprintf( self::DOWNLOAD_BASE_URL_TEMPLATE, $release->tag_name diff --git a/src/RdKafka/FFI/Library.php b/src/RdKafka/FFI/Library.php index 7444b8ee..5ce21a7f 100644 --- a/src/RdKafka/FFI/Library.php +++ b/src/RdKafka/FFI/Library.php @@ -27,7 +27,7 @@ class Library use Methods; public const VERSION_AUTODETECT = ''; - public const VERSION_LATEST = '2.3.0'; + public const VERSION_LATEST = '2.6.0'; public const PHP_LIBRARY_VERSION = '0.6.0'; private static FFI $ffi; diff --git a/src/RdKafka/FFI/Methods.php b/src/RdKafka/FFI/Methods.php index 60f57781..1bf41ce8 100644 --- a/src/RdKafka/FFI/Methods.php +++ b/src/RdKafka/FFI/Methods.php @@ -34,7 +34,7 @@ public static function rd_kafka_version(): ?int *
Returns the librdkafka version as string.
* @return string|null const char* - ) - Version string * @since 1.0.0 of librdkafka - * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a0cc60434083686fd8e379a905652d34a + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a5b48bd8309abc31a7d2256baffb5957d */ public static function rd_kafka_version_str(): ?string { @@ -45,7 +45,7 @@ public static function rd_kafka_version_str(): ?string *Retrieve supported debug contexts for use with the "debug"
configuration property. (runtime)
Iterator for all headers.
*Same semantics as rd_kafka_header_get() - *
Destroy Kafka handle according to specified destroy flags.
* @param \FFI\CData|null $rk rd_kafka_t* * @param int|null $flags int * @since 1.0.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ab4249c99e6b06fbe126d85d09e4735f7 */ public static function rd_kafka_destroy_flags(?\FFI\CData $rk, ?int $flags): void { @@ -2110,6 +2112,10 @@ public static function rd_kafka_assignment(?\FFI\CData $rk, ?\FFI\CData $partiti *offsets
should contain topic
, partition
, offset
and possibly metadata
. The offset
should be the offset where consumption will resume, i.e., the last processed offset + 1. If offsets
is NULL the current partition assignment will be used instead.
If async
is false this operation will block until the broker offset commit is done, returning the resulting success or error code.
If a rd_kafka_conf_set_offset_commit_cb() offset commit callback has been configured the callback will be enqueued for a future call to rd_kafka_poll(), rd_kafka_consumer_poll() or similar.
+ * + *FIXME: Update below documentation.
+ *RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH is returned, when using group.protocol=consumer
, if the commit failed because the member has switched to a new member epoch. This error code can be retried. Partition level error is also set in the offsets
.
RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID is returned, when using group.protocol=consumer
, if the member has been removed from the consumer group This error code is permanent, uncommitted messages will be reprocessed by this or a different member and committed there. Partition level error is also set in the offsets
.
confsource
.
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad946f1e500a4ce28ed9378d495586076
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ac12e21fba3216ac6f1f1eb5aa2859b9c
*/
public static function rd_kafka_ConfigSource_name(int $confsource): ?string
{
@@ -3669,7 +3679,7 @@ public static function rd_kafka_ConfigSource_name(int $confsource): ?string
* @param \FFI\CData|null $entry const rd_kafka_ConfigEntry_t* - )
* @return string|null const char* - the configuration property name
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad68d560b00fdbad3a1e994bc423791f6
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ab379f1b0d46879d4fdeb05ca818e5724
*/
public static function rd_kafka_ConfigEntry_name(?\FFI\CData $entry): ?string
{
@@ -3681,7 +3691,7 @@ public static function rd_kafka_ConfigEntry_name(?\FFI\CData $entry): ?string
* @param \FFI\CData|null $entry const rd_kafka_ConfigEntry_t* - )
* @return string|null const char* - the configuration value, may be NULL for sensitive or unset properties.
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a744ffc08e0ad1a86e62fa4d4da956770
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#af1e740ad0e7ebf9c708b8e6cba7dd3e7
*/
public static function rd_kafka_ConfigEntry_value(?\FFI\CData $entry): ?string
{
@@ -3758,7 +3768,7 @@ public static function rd_kafka_ConfigEntry_is_synonym(?\FFI\CData $entry): ?int
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_ConfigEntry_t** - the synonym config entry array.
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8a9e60a1274f1889a6d20d8ac6ffb948
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a192933700fd215908d4bfd1e4e93ff51
*/
public static function rd_kafka_ConfigEntry_synonyms(?\FFI\CData $entry, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -3770,7 +3780,7 @@ public static function rd_kafka_ConfigEntry_synonyms(?\FFI\CData $entry, ?\FFI\C
* @param int $restype rd_kafka_ResourceType_t - )
* @return string|null const char* - a string representation of the restype
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ac026f797b199338b30a684087d2365f8
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a731d80842dc9d8388abe94e7b27f053c
*/
public static function rd_kafka_ResourceType_name(int $restype): ?string
{
@@ -3832,7 +3842,7 @@ public static function rd_kafka_ConfigResource_set_config(?\FFI\CData $config, ?
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_ConfigEntry_t**
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a5e95b289deaebe43f7a73874e8428f4d
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a3ee9b18e3b1dc3367f5ef3f3347bf098
*/
public static function rd_kafka_ConfigResource_configs(?\FFI\CData $config, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -3856,7 +3866,7 @@ public static function rd_kafka_ConfigResource_type(?\FFI\CData $config): int
* @param \FFI\CData|null $config const rd_kafka_ConfigResource_t* - )
* @return string|null const char* - the name for config
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#af70880e690cb45ff728a331e7e40baac
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#abecdb6f1b926e529c5df5aa82874cb9d
*/
public static function rd_kafka_ConfigResource_name(?\FFI\CData $config): ?string
{
@@ -3880,7 +3890,7 @@ public static function rd_kafka_ConfigResource_error(?\FFI\CData $config): int
* @param \FFI\CData|null $config const rd_kafka_ConfigResource_t* - )
* @return string|null const char* - the error string for this resource from an AlterConfigs request, or NULL if no error.
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a077c4a83e8b7fcf23057dad5a2af812f
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a96f9d507d6d89c21bd597b75fcd99c27
*/
public static function rd_kafka_ConfigResource_error_string(?\FFI\CData $config): ?string
{
@@ -3914,7 +3924,7 @@ public static function rd_kafka_AlterConfigs(?\FFI\CData $rk, ?\FFI\CData $confi
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_ConfigResource_t** - an array of ConfigResource elements, or NULL if not available.
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7a8a2fdf3473111a84e14bcb0a88ef05
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#af477d5420ddcad9a0f09435de060dafb
*/
public static function rd_kafka_AlterConfigs_result_resources(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -3950,7 +3960,7 @@ public static function rd_kafka_DescribeConfigs(?\FFI\CData $rk, ?\FFI\CData $co
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_ConfigResource_t**
* @since 1.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a1f8eb6562e32b2638d75ca22161ab185
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a30da84abba0df9f93460d15dc064f3ef
*/
public static function rd_kafka_DescribeConfigs_result_resources(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -3962,7 +3972,7 @@ public static function rd_kafka_DescribeConfigs_result_resources(?\FFI\CData $re
* @param \FFI\CData|null $rk rd_kafka_t* - )
* @return \FFI\CData|null const rd_kafka_conf_t* - the configuration object used by an rd_kafka_t instance. For use with rd_kafka_conf_get(), et.al., to extract configuration properties from a running client.
* @since 1.1.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a71e233cd19b13572772df2d43074a97d
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ac5497485329acb55ef3aa08ef00f6702
*/
public static function rd_kafka_conf(?\FFI\CData $rk): ?\FFI\CData
{
@@ -4053,7 +4063,7 @@ public static function rd_kafka_conf_set_ssl_cert(?\FFI\CData $conf, int $cert_t
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return string|null const char* - the associated configuration string for the event, or NULL if the configuration property is not set or if not applicable for the given event type.
* @since 1.1.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7e1534cd509d7b233ba4b3d2efea5278
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a79126bbee3e5c7930459469d6ee20952
*/
public static function rd_kafka_event_config_string(?\FFI\CData $rkev): ?string
{
@@ -4309,7 +4319,7 @@ public static function rd_kafka_error_code(?\FFI\CData $error): int
* @param \FFI\CData|null $error const rd_kafka_error_t* - )
* @return string|null const char* - the error code name for error
, e.g, "ERR_UNKNOWN_MEMBER_ID", or an empty string if error
is NULL.
* @since 1.4.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a3b32c027854efbf7f52392019a15bc67
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ab632db46f371bca77685da2e6245b5be
*/
public static function rd_kafka_error_name(?\FFI\CData $error): ?string
{
@@ -4321,7 +4331,7 @@ public static function rd_kafka_error_name(?\FFI\CData $error): ?string
* @param \FFI\CData|null $error const rd_kafka_error_t* - )
* @return string|null const char* - a human readable error string for error
, or an empty string if error
is NULL.
* @since 1.4.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aea75812786d33b35175b3764e7a342df
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad45afa13cd9d23ed5ffade73b0c4272f
*/
public static function rd_kafka_error_string(?\FFI\CData $error): ?string
{
@@ -4720,7 +4730,7 @@ public static function rd_kafka_mock_broker_set_rtt(?\FFI\CData $mcluster, ?int
* @param \FFI\CData|null $rkmessage const rd_kafka_message_t* - )
* @return string|null const char*
* @since 1.5.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a5908f68997a5bc42695cff2a703618dd
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a4d06383f90911ab9257bc468053bfa36
*/
public static function rd_kafka_message_errstr(?\FFI\CData $rkmessage): ?string
{
@@ -4871,7 +4881,7 @@ public static function rd_kafka_incremental_unassign(?\FFI\CData $rk, ?\FFI\CDat
* @param \FFI\CData|null $rk rd_kafka_t* - )
* @return string|null const char* - NULL on error, or one of "NONE", "EAGER", "COOPERATIVE" on success.
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a57d367712406848d59cdaae97ab29354
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ae8c9ec99ace76e89a6b77b89ff15c970
*/
public static function rd_kafka_rebalance_protocol(?\FFI\CData $rk): ?string
{
@@ -4913,7 +4923,7 @@ public static function rd_kafka_consumer_group_metadata_new_with_genid(?string $
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_DeleteRecords_result_t* - the result of a DeleteRecords request, or NULL if event is of different type.
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad98fee7bec920114c73c1af90be53416
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a4f56557b7e82e145dca38d6f0409476c
*/
public static function rd_kafka_event_DeleteRecords_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -4927,7 +4937,7 @@ public static function rd_kafka_event_DeleteRecords_result(?\FFI\CData $rkev): ?
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_DeleteGroups_result_t* - the result of a DeleteGroups request, or NULL if event is of different type.
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad417e30a46183425d3549acb0a2c7e9f
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a4d60f12ec39f5d51399e35ff26160f37
*/
public static function rd_kafka_event_DeleteGroups_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -4941,7 +4951,7 @@ public static function rd_kafka_event_DeleteGroups_result(?\FFI\CData $rkev): ?\
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_DeleteConsumerGroupOffsets_result_t* - the result of a DeleteConsumerGroupOffsets request, or NULL if event is of different type.
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a36ec38fe2135740ac6b41a4141fbc566
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aa1d97f635157900a0a37e76818149125
*/
public static function rd_kafka_event_DeleteConsumerGroupOffsets_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -4955,7 +4965,7 @@ public static function rd_kafka_event_DeleteConsumerGroupOffsets_result(?\FFI\CD
* @param \FFI\CData|null $groupres const rd_kafka_group_result_t* - )
* @return \FFI\CData|null const rd_kafka_error_t* - the error for the given group result, or NULL on success.
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a97cda56301d566204aad9320e2b748ba
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a4b31907b1a13fbb6bdab1622aacce611
*/
public static function rd_kafka_group_result_error(?\FFI\CData $groupres): ?\FFI\CData
{
@@ -4967,7 +4977,7 @@ public static function rd_kafka_group_result_error(?\FFI\CData $groupres): ?\FFI
* @param \FFI\CData|null $groupres const rd_kafka_group_result_t* - )
* @return string|null const char* - the name of the group for the given group result.
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7f8f41cfe01a2b977e4a2d54644e765d
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ae0af23582029dd553ec3e6786e4aa0b7
*/
public static function rd_kafka_group_result_name(?\FFI\CData $groupres): ?string
{
@@ -4979,7 +4989,7 @@ public static function rd_kafka_group_result_name(?\FFI\CData $groupres): ?strin
* @param \FFI\CData|null $groupres const rd_kafka_group_result_t* - )
* @return \FFI\CData|null const rd_kafka_topic_partition_list_t* - the partitions/offsets for the given group result, if applicable to the request type, else NULL.
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a5c039926ae9dca773ebec2f9147f2fa1
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#afb53d17790ca12c4d945a9febf183409
*/
public static function rd_kafka_group_result_partitions(?\FFI\CData $groupres): ?\FFI\CData
{
@@ -5045,7 +5055,7 @@ public static function rd_kafka_DeleteRecords(?\FFI\CData $rk, ?\FFI\CData $del_
* @param \FFI\CData|null $result const rd_kafka_DeleteRecords_result_t* - )
* @return \FFI\CData|null const rd_kafka_topic_partition_list_t*
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ac894a0e005db1fa671c1802ba3563b69
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aadccd815e56ad7434bd0e7865ae5b4c5
*/
public static function rd_kafka_DeleteRecords_result_offsets(?\FFI\CData $result): ?\FFI\CData
{
@@ -5109,7 +5119,7 @@ public static function rd_kafka_DeleteGroups(?\FFI\CData $rk, ?\FFI\CData $del_g
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_group_result_t**
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a20097b0ced17760c9aa624552dbf47e7
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a0246ba70addd9d3c8f8091ea433cabb7
*/
public static function rd_kafka_DeleteGroups_result_groups(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -5174,7 +5184,7 @@ public static function rd_kafka_DeleteConsumerGroupOffsets(?\FFI\CData $rk, ?\FF
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_group_result_t**
* @since 1.6.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a014654eaec7601933e6ec5d5613ef4b0
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a039a9e287e641e3f017c94ab1c48b18b
*/
public static function rd_kafka_DeleteConsumerGroupOffsets_result_groups(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -5390,7 +5400,7 @@ public static function rd_kafka_consumer_closed(?\FFI\CData $rk): ?int
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_CreateAcls_result_t* - the result of a CreateAcls request, or NULL if event is of different type.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aa605a0d0500ccb783ed7da23670075d9
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a24b0e95c5d86a9490daf8ca8a8122ed6
*/
public static function rd_kafka_event_CreateAcls_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -5402,7 +5412,7 @@ public static function rd_kafka_event_CreateAcls_result(?\FFI\CData $rkev): ?\FF
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_DescribeAcls_result_t* - the result of a DescribeAcls request, or NULL if event is of different type.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#adba2388c1eac2bb6d3e56fdaf4da0839
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a5f3c26dc9f796315211c8bf46cfb1753
*/
public static function rd_kafka_event_DescribeAcls_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -5414,7 +5424,7 @@ public static function rd_kafka_event_DescribeAcls_result(?\FFI\CData $rkev): ?\
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_DeleteAcls_result_t* - the result of a DeleteAcls request, or NULL if event is of different type.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a9b456786cd867418fd7f8e3cb5f25478
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a818f0a66803e94ed186747cef3d4b012
*/
public static function rd_kafka_event_DeleteAcls_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -5426,7 +5436,7 @@ public static function rd_kafka_event_DeleteAcls_result(?\FFI\CData $rkev): ?\FF
* @param int $resource_pattern_type rd_kafka_ResourcePatternType_t - )
* @return string|null const char* - a string representation of the resource_pattern_type
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a488574082a549170e09adb67faca2f46
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a311aad04500432476964426971baf7de
*/
public static function rd_kafka_ResourcePatternType_name(int $resource_pattern_type): ?string
{
@@ -5438,7 +5448,7 @@ public static function rd_kafka_ResourcePatternType_name(int $resource_pattern_t
* @param \FFI\CData|null $aclres const rd_kafka_acl_result_t* - )
* @return \FFI\CData|null const rd_kafka_error_t* - the error object for the given acl result, or NULL on success.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aebde4f3d06cf6ae74b4be39bca9107bb
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a433383bc595e0d1fa028243ac2b2b5df
*/
public static function rd_kafka_acl_result_error(?\FFI\CData $aclres): ?\FFI\CData
{
@@ -5450,7 +5460,7 @@ public static function rd_kafka_acl_result_error(?\FFI\CData $aclres): ?\FFI\CDa
* @param int $acl_operation rd_kafka_AclOperation_t - )
* @return string|null const char* - a string representation of the acl_operation
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#afeab00c55bf43b5152ecef5167baa227
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a191c77d49f59377c37d934ee78c13cd6
*/
public static function rd_kafka_AclOperation_name(int $acl_operation): ?string
{
@@ -5462,7 +5472,7 @@ public static function rd_kafka_AclOperation_name(int $acl_operation): ?string
* @param int $acl_permission_type rd_kafka_AclPermissionType_t - )
* @return string|null const char* - a string representation of the acl_permission_type
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a9df29768d60a17013bb4e2860378f248
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aaae7406b5febd7ab37daf6cd56405a7c
*/
public static function rd_kafka_AclPermissionType_name(int $acl_permission_type): ?string
{
@@ -5526,7 +5536,7 @@ public static function rd_kafka_AclBinding_restype(?\FFI\CData $acl): int
* @param \FFI\CData|null $acl const rd_kafka_AclBinding_t* - )
* @return string|null const char* - the resource name for the given acl binding.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acb03634b4456326f3592b79584c551ea
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ae8aec3bdc076a78fbaf37dc39ea0983c
*/
public static function rd_kafka_AclBinding_name(?\FFI\CData $acl): ?string
{
@@ -5538,7 +5548,7 @@ public static function rd_kafka_AclBinding_name(?\FFI\CData $acl): ?string
* @param \FFI\CData|null $acl const rd_kafka_AclBinding_t* - )
* @return string|null const char* - the principal for the given acl binding.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad99b0868262484fc46b7c36b7db2173b
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a1e50b091f4562bffd21405799e4f6597
*/
public static function rd_kafka_AclBinding_principal(?\FFI\CData $acl): ?string
{
@@ -5550,7 +5560,7 @@ public static function rd_kafka_AclBinding_principal(?\FFI\CData $acl): ?string
* @param \FFI\CData|null $acl const rd_kafka_AclBinding_t* - )
* @return string|null const char* - the host for the given acl binding.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8c242229f6b0b8faeb078fc814261fa7
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad5428eeaee75110564762eed82b7ab54
*/
public static function rd_kafka_AclBinding_host(?\FFI\CData $acl): ?string
{
@@ -5598,7 +5608,7 @@ public static function rd_kafka_AclBinding_resource_pattern_type(?\FFI\CData $ac
* @param \FFI\CData|null $acl const rd_kafka_AclBinding_t* - )
* @return \FFI\CData|null const rd_kafka_error_t* - the error object for the given acl binding, or NULL on success.
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a047abe192b6445a37cbab1f1be355f3d
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a3d71c7575dcf5dabfbf6f85ec25db7e5
*/
public static function rd_kafka_AclBinding_error(?\FFI\CData $acl): ?\FFI\CData
{
@@ -5631,7 +5641,7 @@ public static function rd_kafka_AclBinding_destroy_array(?\FFI\CData $acl_bindin
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_acl_result_t**
* @since 1.9.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#abfcceea2bb29d6fd800f11224f0f4238
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03ef006de8d9d739e33f1c6951e34872
*/
public static function rd_kafka_CreateAcls_result_acls(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -5660,13 +5670,12 @@ public static function rd_kafka_CreateAcls(?\FFI\CData $rk, ?\FFI\CData $new_acl
/**
* Get an array of resource results from a DescribeAcls result.
- *DescribeAcls - describe access control lists.
- *The returned resources
life-time is the same as the result
object.
DescribeAcls - describe access control lists. The returned resources
life-time is the same as the result
object.
result
.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a0d1251b00ea55f8bd652c7a056c11425
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a54dd847029c30daa85d90aa434ccb59c
*/
public static function rd_kafka_ListConsumerGroups_result_errors(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -6066,7 +6075,9 @@ public static function rd_kafka_ListConsumerGroups_result_errors(?\FFI\CData $re
* @param \FFI\CData|null $rk rd_kafka_t* - Client instance.
* @param \FFI\CData|null $groups const char** - Array of groups to describe.
* @param int|null $groups_cnt size_t - Number of elements in groups
array.
- * @param \FFI\CData|null $options const rd_kafka_AdminOptions_t* - Optional admin options, or NULL for defaults.
+ * @param \FFI\CData|null $options const rd_kafka_AdminOptions_t* - Optional admin options, or NULL for defaults. Valid options:idx
, or NULL if idx
is out of range.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7bdfd0d42f52fb3d8d58aca660ef36b0
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a0ffb23c272f79cd548f71b7c0ad24fc4
*/
public static function rd_kafka_ConsumerGroupDescription_member(?\FFI\CData $grpdesc, ?int $idx): ?\FFI\CData
{
@@ -6212,7 +6223,7 @@ public static function rd_kafka_ConsumerGroupDescription_member(?\FFI\CData $grp
* @param \FFI\CData|null $member const rd_kafka_MemberDescription_t* - ) - The group member.
* @return string|null const char* - The client id.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#af51b7bb5ba85029cf61512e0d577752b
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7e553ceb0b76a8ef939a0339e9e861ad
*/
public static function rd_kafka_MemberDescription_client_id(?\FFI\CData $member): ?string
{
@@ -6227,7 +6238,7 @@ public static function rd_kafka_MemberDescription_client_id(?\FFI\CData $member)
* @param \FFI\CData|null $member const rd_kafka_MemberDescription_t* - ) - The group member.
* @return string|null const char* - The group instance id, or NULL if not available.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ac4a5a27065d4aac5c9cf68cb518a40d3
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a0b746957ba9447dc2c73aae8df177e80
*/
public static function rd_kafka_MemberDescription_group_instance_id(?\FFI\CData $member): ?string
{
@@ -6242,7 +6253,7 @@ public static function rd_kafka_MemberDescription_group_instance_id(?\FFI\CData
* @param \FFI\CData|null $member const rd_kafka_MemberDescription_t* - ) - The group member.
* @return string|null const char* - The consumer id.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a870f35c37cb290231adb1ef8d4fa7454
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ac359a93ea6b7b7d9bd050cad1be55f21
*/
public static function rd_kafka_MemberDescription_consumer_id(?\FFI\CData $member): ?string
{
@@ -6257,7 +6268,7 @@ public static function rd_kafka_MemberDescription_consumer_id(?\FFI\CData $membe
* @param \FFI\CData|null $member const rd_kafka_MemberDescription_t* - ) - The group member.
* @return string|null const char* - The host.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a74681ac4652977e239f18d7e13a40dfe
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#add167499632d1f617bb16802a5bb2d2b
*/
public static function rd_kafka_MemberDescription_host(?\FFI\CData $member): ?string
{
@@ -6272,7 +6283,7 @@ public static function rd_kafka_MemberDescription_host(?\FFI\CData $member): ?st
* @param \FFI\CData|null $member const rd_kafka_MemberDescription_t* - ) - The group member.
* @return \FFI\CData|null const rd_kafka_MemberAssignment_t* - The member assignment.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a9c5094e0d39a8d6f96e08355ef11c549
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a2e6070360cb854c549bc123222372eb2
*/
public static function rd_kafka_MemberDescription_assignment(?\FFI\CData $member): ?\FFI\CData
{
@@ -6287,7 +6298,7 @@ public static function rd_kafka_MemberDescription_assignment(?\FFI\CData $member
* @param \FFI\CData|null $assignment const rd_kafka_MemberAssignment_t* - ) - The group member assignment.
* @return \FFI\CData|null const rd_kafka_topic_partition_list_t* - The assigned partitions.
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a5da333973857cb6e128a856399a9a21f
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a42f960ea967772f9d79a201abc507ac6
*/
public static function rd_kafka_MemberAssignment_partitions(?\FFI\CData $assignment): ?\FFI\CData
{
@@ -6354,7 +6365,7 @@ public static function rd_kafka_ListConsumerGroupOffsets(?\FFI\CData $rk, ?\FFI\
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_group_result_t**
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a0b4b3b9c5388038f4aac0e939f56854d
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a23b262447d3f65fc2ba52f5002d9c195
*/
public static function rd_kafka_ListConsumerGroupOffsets_result_groups(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -6421,7 +6432,7 @@ public static function rd_kafka_AlterConsumerGroupOffsets(?\FFI\CData $rk, ?\FFI
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_group_result_t**
* @since 2.0.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7eff1952f24e1d5f2bde678165886731
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8b9eb384ca33b0e87606e9decd07d3eb
*/
public static function rd_kafka_AlterConsumerGroupOffsets_result_groups(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -6505,7 +6516,7 @@ public static function rd_kafka_offset_store_message(?\FFI\CData $rkmessage): ?\
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_IncrementalAlterConfigs_result_t* - the result of a IncrementalAlterConfigs request, or NULL if event is of different type.
* @since 2.2.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8e76c2d637218310d8868af31649b97a
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7005c1f446376c4e0d07c11b2ddc8918
*/
public static function rd_kafka_event_IncrementalAlterConfigs_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -6520,7 +6531,7 @@ public static function rd_kafka_event_IncrementalAlterConfigs_result(?\FFI\CData
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_DescribeUserScramCredentials_result_t* - the result of a DescribeUserScramCredentials request, or NULL if event is of different type.
* @since 2.2.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a69853c3d64324a45341b2a68b0e2026e
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8c2dbdc07da30740430e66c527b05cf2
*/
public static function rd_kafka_event_DescribeUserScramCredentials_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -6535,7 +6546,7 @@ public static function rd_kafka_event_DescribeUserScramCredentials_result(?\FFI\
* @param \FFI\CData|null $rkev rd_kafka_event_t* - )
* @return \FFI\CData|null const rd_kafka_AlterUserScramCredentials_result_t* - the result of a AlterUserScramCredentials request, or NULL if event is of different type.
* @since 2.2.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#abb9995f278c3eaf8e4bc6caba254ba0a
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a1f09d94a5a87834a917794450cd6cd46
*/
public static function rd_kafka_event_AlterUserScramCredentials_result(?\FFI\CData $rkev): ?\FFI\CData
{
@@ -6585,7 +6596,7 @@ public static function rd_kafka_IncrementalAlterConfigs(?\FFI\CData $rk, ?\FFI\C
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_ConfigResource_t** - an array of ConfigResource elements, or NULL if not available.
* @since 2.2.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad1d8458aa405d06de7feb716ae5144b5
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ae6b92f7bfcbc102ed47b463c8c6d7608
*/
public static function rd_kafka_IncrementalAlterConfigs_result_resources(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -6660,7 +6671,7 @@ public static function rd_kafka_UserScramCredentialsDescription_scramcredentiali
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_UserScramCredentialsDescription_t**
* @since 2.2.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a1d6db38eb4f640a20a5806da2b12bc47
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a6cff8d4ffdc15521a29993994904b4ef
*/
public static function rd_kafka_DescribeUserScramCredentials_result_descriptions(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -6761,7 +6772,7 @@ public static function rd_kafka_AlterUserScramCredentials_result_response_error(
* @param \FFI\CData|null $cntp size_t* - is updated to the number of elements in the array.
* @return \FFI\CData|null const rd_kafka_AlterUserScramCredentials_result_response_t**
* @since 2.2.0 of librdkafka
- * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#abf118e72e7bea8ad0cd56a950dcfe2b3
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#adb851385d7dba3b96468f2a3a4a5868f
*/
public static function rd_kafka_AlterUserScramCredentials_result_responses(?\FFI\CData $result, ?\FFI\CData $cntp): ?\FFI\CData
{
@@ -6785,9 +6796,11 @@ public static function rd_kafka_AlterUserScramCredentials(?\FFI\CData $rk, ?\FFI
}
/**
- * @param \FFI\CData|null $uuid const rd_kafka_Uuid_t*
- * @return string|null const char*
+ * Computes base64 encoding for the given uuid string.
+ * @param \FFI\CData|null $uuid const rd_kafka_Uuid_t* - ) - UUID for which base64 encoding is required. + * @return string|null const char* - base64 encoded string for the given UUID or NULL in case of some issue with the conversion or the conversion is not supported. * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a1186ff610c5c603461bafa1886c2f64a */ public static function rd_kafka_Uuid_base64str(?\FFI\CData $uuid): ?string { @@ -6795,9 +6808,11 @@ public static function rd_kafka_Uuid_base64str(?\FFI\CData $uuid): ?string } /** - * @param \FFI\CData|null $uuid const rd_kafka_Uuid_t* - * @return int|null int64_t + *Gets least significant 64 bits for the given UUID.
+ * @param \FFI\CData|null $uuid const rd_kafka_Uuid_t* - ) - UUID + * @return int|null int64_t - least significant 64 bits for the given UUID. * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#afda9d744c58d439823bd9e06f5fbf851 */ public static function rd_kafka_Uuid_least_significant_bits(?\FFI\CData $uuid): ?int { @@ -6805,9 +6820,11 @@ public static function rd_kafka_Uuid_least_significant_bits(?\FFI\CData $uuid): } /** - * @param \FFI\CData|null $uuid const rd_kafka_Uuid_t* - * @return int|null int64_t + *Gets most significant 64 bits for the given UUID.
+ * @param \FFI\CData|null $uuid const rd_kafka_Uuid_t* - ) - UUID + * @return int|null int64_t - most significant 64 bits for the given UUID. * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a443577282d2071374f20896ce2f97a91 */ public static function rd_kafka_Uuid_most_significant_bits(?\FFI\CData $uuid): ?int { @@ -6815,10 +6832,15 @@ public static function rd_kafka_Uuid_most_significant_bits(?\FFI\CData $uuid): ? } /** - * @param int|null $most_significant_bits int64_t - * @param int|null $least_significant_bits int64_t - * @return \FFI\CData|null rd_kafka_Uuid_t* + *Creates a new UUID.
+ * + * + *Copies the given UUID.
+ * + * + *Destroy the provided uuid.
+ * @param \FFI\CData|null $uuid rd_kafka_Uuid_t* - ) - UUID * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a04e21c3278dc96745bfb232df69dbfce */ public static function rd_kafka_Uuid_destroy(?\FFI\CData $uuid): void { @@ -6845,9 +6874,11 @@ public static function rd_kafka_Uuid_destroy(?\FFI\CData $uuid): void } /** - * @param \FFI\CData|null $node const rd_kafka_Node_t* - * @return string|null const char* + *Get the rack of node
.
Get DescribeTopics result.
+ * + *rkev
object.Event types: RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT
+ * @param \FFI\CData|null $rkev rd_kafka_event_t* - ) + * @return \FFI\CData|null const rd_kafka_DescribeTopics_result_t* - the result of a DescribeTopics request, or NULL if event is of different type. * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ae309867e52a99067ece1a7cadd99dd18 */ public static function rd_kafka_event_DescribeTopics_result(?\FFI\CData $rkev): ?\FFI\CData { @@ -6865,9 +6901,14 @@ public static function rd_kafka_event_DescribeTopics_result(?\FFI\CData $rkev): } /** - * @param \FFI\CData|null $rkev rd_kafka_event_t* - * @return \FFI\CData|null const rd_kafka_DescribeCluster_result_t* + *Get DescribeCluster result.
+ * + *rkev
object.Event types: RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT
+ * @param \FFI\CData|null $rkev rd_kafka_event_t* - ) + * @return \FFI\CData|null const rd_kafka_DescribeCluster_result_t* - the result of a DescribeCluster request, or NULL if event is of different type. * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ad929f688a6f83e1a746f9671a3afca07 */ public static function rd_kafka_event_DescribeCluster_result(?\FFI\CData $rkev): ?\FFI\CData { @@ -6875,9 +6916,14 @@ public static function rd_kafka_event_DescribeCluster_result(?\FFI\CData $rkev): } /** - * @param \FFI\CData|null $rkev rd_kafka_event_t* - * @return \FFI\CData|null const rd_kafka_ListOffsets_result_t* + *Get ListOffsets result.
+ * + *rkev
object.Event types: RD_KAFKA_EVENT_LISTOFFSETS_RESULT
+ * @param \FFI\CData|null $rkev rd_kafka_event_t* - ) + * @return \FFI\CData|null const rd_kafka_ListOffsets_result_t* - the result of a ListOffsets request, or NULL if event is of different type. * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7235a4c443405ed3e2800c7154824451 */ public static function rd_kafka_event_ListOffsets_result(?\FFI\CData $rkev): ?\FFI\CData { @@ -6885,10 +6931,15 @@ public static function rd_kafka_event_ListOffsets_result(?\FFI\CData $rkev): ?\F } /** - * @param \FFI\CData|null $options rd_kafka_AdminOptions_t* - * @param int|null $true_or_false int - * @return \FFI\CData|null rd_kafka_error_t* + *Whether broker should return authorized operations for the given resource in the DescribeConsumerGroups, DescribeTopics, or DescribeCluster calls.
+ * + * + *Creates a new TopicCollection for passing to rd_kafka_DescribeTopics.
+ * @param \FFI\CData|null $topics const char** - A list of topics. + * @param int|null $topics_cnt size_t - Count of topics. + * @return \FFI\CData|null rd_kafka_TopicCollection_t* - a newly allocated TopicCollection object. Must be freed using rd_kafka_TopicCollection_destroy when done. * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#ab9af9e28d53872823af6702d1b01d378 */ public static function rd_kafka_TopicCollection_of_topic_names(?\FFI\CData $topics, ?int $topics_cnt): ?\FFI\CData { @@ -6927,11 +6980,17 @@ public static function rd_kafka_TopicCollection_destroy(?\FFI\CData $topics): vo } /** - * @param \FFI\CData|null $rk rd_kafka_t* - * @param \FFI\CData|null $topics const rd_kafka_TopicCollection_t* - * @param \FFI\CData|null $options const rd_kafka_AdminOptions_t* - * @param \FFI\CData|null $rkqu rd_kafka_queue_t* + *Describe topics as specified by the topics
array of size topics_cnt
elements.
RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT
Get an array of topic results from a DescribeTopics result.
+ * + *result
object. Gets an array of partitions for the topicdesc
topic.
topicdesc
object. Gets the partition id for partition
.
Gets the partition leader for partition
.
partition
object. Gets the partition in-sync replicas for partition
.
partition
object. Gets the partition replicas for partition
.
partition
object. Gets the topic authorized ACL operations for the topicdesc
topic.
topicdesc
object. Gets the topic name for the topicdesc
topic.
topicdesc
object. Gets the topic id for the topicdesc
topic.
topicdesc
object. Gets if the topicdesc
topic is internal.
Gets the error for the topicdesc
topic.
topicdesc
object. Describes the cluster.
+ * + *RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT
Gets the broker nodes for the result
cluster.
result
object. Gets the authorized ACL operations for the result
cluster.
result
object. Gets the current controller for the result
cluster.
Gets the cluster id for the result
cluster.
result
object. Gets the authorized ACL operations for the grpdesc
group.
grpdesc
object. List offsets for the specified topic_partitions
. This operation enables to find the beginning offset, end offset as well as the offset matching a timestamp in partitions or the offset with max timestamp.
Supported admin options:
RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED
RD_KAFKA_EVENT_LISTOFFSETS_RESULT
rd_kafka_OffsetSpec_t
enum or a non-negative value, representing a timestamp, to query for the first offset after the given timestamp.
+ * @param \FFI\CData|null $options const rd_kafka_AdminOptions_t* - Optional admin options, or NULL for defaults.
+ * @param \FFI\CData|null $rkqu rd_kafka_queue_t* - Queue to emit result on.
* @since 2.3.0 of librdkafka
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a264a98c3d96233e68a05739baed9428f
*/
public static function rd_kafka_ListOffsets(?\FFI\CData $rk, ?\FFI\CData $topic_partitions, ?\FFI\CData $options, ?\FFI\CData $rkqu): void
{
@@ -7236,4 +7379,244 @@ public static function rd_kafka_mock_clear_requests(?\FFI\CData $mcluster): void
{
static::getFFI()->rd_kafka_mock_clear_requests($mcluster);
}
+
+ /**
+ * Returns the error string for an errored produced rd_kafka_message_t or NULL if there was no error.
+ *Get member id of a group metadata.
+ * + * + *group_metadata
. group_metadata
.
+ * @since 2.4.0 of librdkafka
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#abc50e7689e6e3975ef0dd3accacff87a
+ */
+ public static function rd_kafka_consumer_group_metadata_member_id(?\FFI\CData $group_metadata): ?string
+ {
+ return static::getFFI()->rd_kafka_consumer_group_metadata_member_id($group_metadata);
+ }
+
+ /**
+ * @param \FFI\CData|null $mcluster rd_kafka_mock_cluster_t*
+ * @param string|null $topic const char*
+ * @param int|null $partition int
+ * @param int|null $leader_id int32_t
+ * @param int|null $leader_epoch int32_t
+ * @return int rd_kafka_resp_err_t
+ * @since 2.4.0 of librdkafka
+ */
+ public static function rd_kafka_mock_partition_push_leader_response(?\FFI\CData $mcluster, ?string $topic, ?int $partition, ?int $leader_id, ?int $leader_epoch): int
+ {
+ return static::getFFI()->rd_kafka_mock_partition_push_leader_response($mcluster, $topic, $partition, $leader_id, $leader_epoch);
+ }
+
+ /**
+ * @param \FFI\CData|null $mreqs rd_kafka_mock_request_t**
+ * @param int|null $mreq_cnt size_t
+ * @since 2.4.0 of librdkafka
+ */
+ public static function rd_kafka_mock_request_destroy_array(?\FFI\CData $mreqs, ?int $mreq_cnt): void
+ {
+ static::getFFI()->rd_kafka_mock_request_destroy_array($mreqs, $mreq_cnt);
+ }
+
+ /**
+ * @param \FFI\CData|null $mcluster rd_kafka_mock_cluster_t*
+ * @param \FFI\CData|null $metrics char**
+ * @param int|null $metrics_cnt size_t
+ * @return int rd_kafka_resp_err_t
+ * @since 2.5.0 of librdkafka
+ */
+ public static function rd_kafka_mock_telemetry_set_requested_metrics(?\FFI\CData $mcluster, ?\FFI\CData $metrics, ?int $metrics_cnt): int
+ {
+ return static::getFFI()->rd_kafka_mock_telemetry_set_requested_metrics($mcluster, $metrics, $metrics_cnt);
+ }
+
+ /**
+ * @param \FFI\CData|null $mcluster rd_kafka_mock_cluster_t*
+ * @param int|null $push_interval_ms int64_t
+ * @return int rd_kafka_resp_err_t
+ * @since 2.5.0 of librdkafka
+ */
+ public static function rd_kafka_mock_telemetry_set_push_interval(?\FFI\CData $mcluster, ?int $push_interval_ms): int
+ {
+ return static::getFFI()->rd_kafka_mock_telemetry_set_push_interval($mcluster, $push_interval_ms);
+ }
+
+ /**
+ * Returns a name for a group type code.
+ * @param int $type rd_kafka_consumer_group_type_t - ) - The group type value. + * @return string|null const char* - The group type name corresponding to the provided group type value. + * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a2dd724a00756c8da5ceb24e11f580b6f + */ + public static function rd_kafka_consumer_group_type_name(int $type): ?string + { + return static::getFFI()->rd_kafka_consumer_group_type_name($type); + } + + /** + *Returns a code for a group type name.
+ * + *Get ElectLeaders result.
+ * + *rkev
object.Event types: RD_KAFKA_EVENT_ELECTLEADERS_RESULT
+ * @param \FFI\CData|null $rkev rd_kafka_event_t* - ) + * @return \FFI\CData|null const rd_kafka_ElectLeaders_result_t* - the result of a ElectLeaders request, or NULL if event is of different type. + * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#accb1216ca1ee4ece892fa100c0979c6d + */ + public static function rd_kafka_event_ElectLeaders_result(?\FFI\CData $rkev): ?\FFI\CData + { + return static::getFFI()->rd_kafka_event_ElectLeaders_result($rkev); + } + + /** + *Topic Partition Result provides per-topic+partition operation result Consists of TopicPartition object and error object.
+ * + *partition_result
. The error object is set inside the topic partition object. For the detailed error information, use rd_kafka_topic_partition_result_error() partition_result
. Set consumer groups types to query for.
+ * + * + *consumer_group_types
array.
+ * @return \FFI\CData|null rd_kafka_error_t* - NULL on success, a new error instance that must be released with rd_kafka_error_destroy() in case of error.
+ * @since 2.6.0 of librdkafka
+ * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a93ca240fdff348f2cb46f870c51ffd1c
+ */
+ public static function rd_kafka_AdminOptions_set_match_consumer_group_types(?\FFI\CData $options, ?\FFI\CData $consumer_group_types, ?int $consumer_group_types_cnt): ?\FFI\CData
+ {
+ return static::getFFI()->rd_kafka_AdminOptions_set_match_consumer_group_types($options, $consumer_group_types, $consumer_group_types_cnt);
+ }
+
+ /**
+ * Gets type for the grplist
group.
Create a new rd_kafka_ElectLeaders_t object. This object is later passed to rd_kafka_ElectLeaders().
+ * @param int $election_type rd_kafka_ElectionType_t - The election type that needs to be performed, preferred or unclean. + * @param \FFI\CData|null $partitions rd_kafka_topic_partition_list_t* - The topic partitions for which the leader election needs to be performed. + * @return \FFI\CData|null rd_kafka_ElectLeaders_t* - a new allocated elect leaders object or returns NULL in case of invalid election_type. Use rd_kafka_ElectLeaders_destroy() to free object when done. + * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a059bcca58185c29fdf9908d7d11e8b22 + */ + public static function rd_kafka_ElectLeaders_new(int $election_type, ?\FFI\CData $partitions): ?\FFI\CData + { + return static::getFFI()->rd_kafka_ElectLeaders_new($election_type, $partitions); + } + + /** + *Destroy and free a rd_kafka_ElectLeaders_t object previously created with rd_kafka_ElectLeaders_new()
+ * @param \FFI\CData|null $elect_leaders rd_kafka_ElectLeaders_t* - ) - The rd_kafka_ElectLeaders_t object to be destroyed. + * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a033c1190f2a18a34aa9d9051eb17a190 + */ + public static function rd_kafka_ElectLeaders_destroy(?\FFI\CData $elect_leaders): void + { + static::getFFI()->rd_kafka_ElectLeaders_destroy($elect_leaders); + } + + /** + *Elect Leaders for the provided Topic Partitions according to the specified election type.
+ * + *Supported admin options:
rdkafka
will wait for the request to complete.RD_KAFKA_EVENT_ELECTLEADERS_RESULT
Get the array of topic partition result objects from the elect leaders result event and populates the size of the array in cntp
.
Number of resource types defined
+ * @since 1.0.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.0.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.0.1.php b/src/RdKafka/FFI/Versions/1.0.1.php index f2f90354..9376555b 100644 --- a/src/RdKafka/FFI/Versions/1.0.1.php +++ b/src/RdKafka/FFI/Versions/1.0.1.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.0.1 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.0.1 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.1.0.php b/src/RdKafka/FFI/Versions/1.1.0.php index 35d537ba..9f2ec659 100644 --- a/src/RdKafka/FFI/Versions/1.1.0.php +++ b/src/RdKafka/FFI/Versions/1.1.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.1.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.1.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.2.0.php b/src/RdKafka/FFI/Versions/1.2.0.php index a9206475..a0426317 100644 --- a/src/RdKafka/FFI/Versions/1.2.0.php +++ b/src/RdKafka/FFI/Versions/1.2.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.2.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.2.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.2.1.php b/src/RdKafka/FFI/Versions/1.2.1.php index 64fcac11..00147de2 100644 --- a/src/RdKafka/FFI/Versions/1.2.1.php +++ b/src/RdKafka/FFI/Versions/1.2.1.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.2.1 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.2.1 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.2.2.php b/src/RdKafka/FFI/Versions/1.2.2.php index a8465597..16f1a92f 100644 --- a/src/RdKafka/FFI/Versions/1.2.2.php +++ b/src/RdKafka/FFI/Versions/1.2.2.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.2.2 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.2.2 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.3.0.php b/src/RdKafka/FFI/Versions/1.3.0.php index 57d09dc8..cd96b9d2 100644 --- a/src/RdKafka/FFI/Versions/1.3.0.php +++ b/src/RdKafka/FFI/Versions/1.3.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.3.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.4.0.php b/src/RdKafka/FFI/Versions/1.4.0.php index 606cff56..754d5f1b 100644 --- a/src/RdKafka/FFI/Versions/1.4.0.php +++ b/src/RdKafka/FFI/Versions/1.4.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.4.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.4.2.php b/src/RdKafka/FFI/Versions/1.4.2.php index 5daccf4f..aedcfcfd 100644 --- a/src/RdKafka/FFI/Versions/1.4.2.php +++ b/src/RdKafka/FFI/Versions/1.4.2.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.4.2 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.4.2 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.4.4.php b/src/RdKafka/FFI/Versions/1.4.4.php index e4c0cd8f..a7e3be40 100644 --- a/src/RdKafka/FFI/Versions/1.4.4.php +++ b/src/RdKafka/FFI/Versions/1.4.4.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.4.4 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.4.4 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.5.0.php b/src/RdKafka/FFI/Versions/1.5.0.php index a4645516..e7b05068 100644 --- a/src/RdKafka/FFI/Versions/1.5.0.php +++ b/src/RdKafka/FFI/Versions/1.5.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.5.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.5.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.5.2.php b/src/RdKafka/FFI/Versions/1.5.2.php index bb27834b..0229e33c 100644 --- a/src/RdKafka/FFI/Versions/1.5.2.php +++ b/src/RdKafka/FFI/Versions/1.5.2.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.5.2 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.5.2 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.5.3.php b/src/RdKafka/FFI/Versions/1.5.3.php index 12e0c0c4..21c685d0 100644 --- a/src/RdKafka/FFI/Versions/1.5.3.php +++ b/src/RdKafka/FFI/Versions/1.5.3.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 6; +/** + *Number of resource types defined
+ * @since 1.5.3 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.5.3 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.6.0.php b/src/RdKafka/FFI/Versions/1.6.0.php index b533a24f..aafdea50 100644 --- a/src/RdKafka/FFI/Versions/1.6.0.php +++ b/src/RdKafka/FFI/Versions/1.6.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 9; +/** + *Number of resource types defined
+ * @since 1.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.6.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.6.1.php b/src/RdKafka/FFI/Versions/1.6.1.php index 492aa8ee..54223a4f 100644 --- a/src/RdKafka/FFI/Versions/1.6.1.php +++ b/src/RdKafka/FFI/Versions/1.6.1.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 9; +/** + *Number of resource types defined
+ * @since 1.6.1 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.6.1 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.6.2.php b/src/RdKafka/FFI/Versions/1.6.2.php index 9132d59b..a6f73c36 100644 --- a/src/RdKafka/FFI/Versions/1.6.2.php +++ b/src/RdKafka/FFI/Versions/1.6.2.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 9; +/** + *Number of resource types defined
+ * @since 1.6.2 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.6.2 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.7.0.php b/src/RdKafka/FFI/Versions/1.7.0.php index 9e87c422..2ed0f90f 100644 --- a/src/RdKafka/FFI/Versions/1.7.0.php +++ b/src/RdKafka/FFI/Versions/1.7.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 9; +/** + *Number of resource types defined
+ * @since 1.7.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.7.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.8.0.php b/src/RdKafka/FFI/Versions/1.8.0.php index d8a7cc00..e50656b3 100644 --- a/src/RdKafka/FFI/Versions/1.8.0.php +++ b/src/RdKafka/FFI/Versions/1.8.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 9; +/** + *Number of resource types defined
+ * @since 1.8.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.8.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.8.2.php b/src/RdKafka/FFI/Versions/1.8.2.php index 7f0414fa..76b273b9 100644 --- a/src/RdKafka/FFI/Versions/1.8.2.php +++ b/src/RdKafka/FFI/Versions/1.8.2.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 9; +/** + *Number of resource types defined
+ * @since 1.8.2 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.8.2 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.9.0.php b/src/RdKafka/FFI/Versions/1.9.0.php index 86369d15..c0bcfcb5 100644 --- a/src/RdKafka/FFI/Versions/1.9.0.php +++ b/src/RdKafka/FFI/Versions/1.9.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 12; +/** + *Number of resource types defined
+ * @since 1.9.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.9.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.9.1.php b/src/RdKafka/FFI/Versions/1.9.1.php index 07f3d6de..73c636d8 100644 --- a/src/RdKafka/FFI/Versions/1.9.1.php +++ b/src/RdKafka/FFI/Versions/1.9.1.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 12; +/** + *Number of resource types defined
+ * @since 1.9.1 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.9.1 of librdkafka diff --git a/src/RdKafka/FFI/Versions/1.9.2.php b/src/RdKafka/FFI/Versions/1.9.2.php index 704d8786..3970cdb6 100644 --- a/src/RdKafka/FFI/Versions/1.9.2.php +++ b/src/RdKafka/FFI/Versions/1.9.2.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 12; +/** + *Number of resource types defined
+ * @since 1.9.2 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 1.9.2 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.0.0.php b/src/RdKafka/FFI/Versions/2.0.0.php index 76ad39d3..a41f89e6 100644 --- a/src/RdKafka/FFI/Versions/2.0.0.php +++ b/src/RdKafka/FFI/Versions/2.0.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 16; +/** + *Number of resource types defined
+ * @since 2.0.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 2.0.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.0.1.php b/src/RdKafka/FFI/Versions/2.0.1.php index c9d811bc..363eef9f 100644 --- a/src/RdKafka/FFI/Versions/2.0.1.php +++ b/src/RdKafka/FFI/Versions/2.0.1.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 16; +/** + *Number of resource types defined
+ * @since 2.0.1 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 2.0.1 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.0.2.php b/src/RdKafka/FFI/Versions/2.0.2.php index 4507127d..90f1355b 100644 --- a/src/RdKafka/FFI/Versions/2.0.2.php +++ b/src/RdKafka/FFI/Versions/2.0.2.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 16; +/** + *Number of resource types defined
+ * @since 2.0.2 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 2.0.2 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.1.0.php b/src/RdKafka/FFI/Versions/2.1.0.php index 62032ebb..93eb9c87 100644 --- a/src/RdKafka/FFI/Versions/2.1.0.php +++ b/src/RdKafka/FFI/Versions/2.1.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 16; +/** + *Number of resource types defined
+ * @since 2.1.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 2.1.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.1.1.php b/src/RdKafka/FFI/Versions/2.1.1.php index 76ee0925..f227605c 100644 --- a/src/RdKafka/FFI/Versions/2.1.1.php +++ b/src/RdKafka/FFI/Versions/2.1.1.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 16; +/** + *Number of resource types defined
+ * @since 2.1.1 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 2.1.1 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.2.0.php b/src/RdKafka/FFI/Versions/2.2.0.php index 18de2027..1edfe887 100644 --- a/src/RdKafka/FFI/Versions/2.2.0.php +++ b/src/RdKafka/FFI/Versions/2.2.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 19; +/** + *Number of resource types defined
+ * @since 2.2.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 2.2.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.3.0.php b/src/RdKafka/FFI/Versions/2.3.0.php index 2c5c578c..5c28f7cb 100644 --- a/src/RdKafka/FFI/Versions/2.3.0.php +++ b/src/RdKafka/FFI/Versions/2.3.0.php @@ -44,6 +44,13 @@ */ const RD_KAFKA_ADMIN_OP__CNT = 22; +/** + *Number of resource types defined
+ * @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + /** * rdkafka.h, rdkafka_mock.h * @since 2.3.0 of librdkafka diff --git a/src/RdKafka/FFI/Versions/2.4.0.php b/src/RdKafka/FFI/Versions/2.4.0.php new file mode 100644 index 00000000..b4b68aa9 --- /dev/null +++ b/src/RdKafka/FFI/Versions/2.4.0.php @@ -0,0 +1,1056 @@ +librdkafka version + *Interpreted as hex MM.mm.rr.xx
:
E.g.: 0x000801ff
= 0.8.1
Unsupported compression type
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76; + +/** + * enum rd_kafka_resp_err_t + * @since 2.4.0 of librdkafka + */ +const RD_KAFKA_RESP_ERR_END_ALL = 114; + +/** + *Number of ops defined
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe + */ +const RD_KAFKA_ADMIN_OP__CNT = 22; + +/** + *Number of resource types defined
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + +/** + * rdkafka.h, rdkafka_mock.h + * @since 2.4.0 of librdkafka + */ +const RD_KAFKA_CDEF = 'typedef long int ssize_t; +typedef struct _IO_FILE FILE; +typedef long int mode_t; +typedef signed int int16_t; +typedef unsigned int uint16_t; +typedef signed int int32_t; +typedef signed long int int64_t; +int rd_kafka_version(void); +const char *rd_kafka_version_str(void); +typedef enum rd_kafka_type_t { + RD_KAFKA_PRODUCER, + RD_KAFKA_CONSUMER, +} rd_kafka_type_t; +typedef enum rd_kafka_timestamp_type_t { + RD_KAFKA_TIMESTAMP_NOT_AVAILABLE, + RD_KAFKA_TIMESTAMP_CREATE_TIME, + RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME, +} rd_kafka_timestamp_type_t; +const char *rd_kafka_get_debug_contexts(void); +typedef struct rd_kafka_s rd_kafka_t; +typedef struct rd_kafka_topic_s rd_kafka_topic_t; +typedef struct rd_kafka_conf_s rd_kafka_conf_t; +typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t; +typedef struct rd_kafka_queue_s rd_kafka_queue_t; +typedef struct rd_kafka_op_s rd_kafka_event_t; +typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t; +typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t; +typedef struct rd_kafka_error_s { + unsigned int code; + char *errstr; + unsigned char fatal; + unsigned char retriable; + unsigned char txn_requires_abort; +} rd_kafka_error_t; +typedef struct rd_kafka_headers_s rd_kafka_headers_t; +typedef struct rd_kafka_group_result_s rd_kafka_group_result_t; +typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t; +typedef struct rd_kafka_Uuid_s rd_kafka_Uuid_t; +typedef enum { + RD_KAFKA_RESP_ERR__BEGIN = (- 200), + RD_KAFKA_RESP_ERR__BAD_MSG = (- 199), + RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198), + RD_KAFKA_RESP_ERR__DESTROY = (- 197), + RD_KAFKA_RESP_ERR__FAIL = (- 196), + RD_KAFKA_RESP_ERR__TRANSPORT = (- 195), + RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194), + RD_KAFKA_RESP_ERR__RESOLVE = (- 193), + RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192), + RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191), + RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190), + RD_KAFKA_RESP_ERR__FS = (- 189), + RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188), + RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187), + RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186), + RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185), + RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184), + RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183), + RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182), + RD_KAFKA_RESP_ERR__SSL = (- 181), + RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180), + RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179), + RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178), + RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177), + RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176), + RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175), + RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174), + RD_KAFKA_RESP_ERR__CONFLICT = (- 173), + RD_KAFKA_RESP_ERR__STATE = (- 172), + RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171), + RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170), + RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169), + RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168), + RD_KAFKA_RESP_ERR__OUTDATED = (- 167), + RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166), + RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165), + RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164), + RD_KAFKA_RESP_ERR__INTR = (- 163), + RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162), + RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161), + RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160), + RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159), + RD_KAFKA_RESP_ERR__PARTIAL = (- 158), + RD_KAFKA_RESP_ERR__READ_ONLY = (- 157), + RD_KAFKA_RESP_ERR__NOENT = (- 156), + RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155), + RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154), + RD_KAFKA_RESP_ERR__RETRY = (- 153), + RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152), + RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151), + RD_KAFKA_RESP_ERR__FATAL = (- 150), + RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149), + RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148), + RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147), + RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146), + RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145), + RD_KAFKA_RESP_ERR__FENCED = (- 144), + RD_KAFKA_RESP_ERR__APPLICATION = (- 143), + RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142), + RD_KAFKA_RESP_ERR__NOOP = (- 141), + RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140), + RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139), + RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD = (- 138), + RD_KAFKA_RESP_ERR__END = (- 100), + RD_KAFKA_RESP_ERR_UNKNOWN = (- 1), + RD_KAFKA_RESP_ERR_NO_ERROR = 0, + RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1, + RD_KAFKA_RESP_ERR_INVALID_MSG = 2, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3, + RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4, + RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5, + RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6, + RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7, + RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8, + RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9, + RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10, + RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11, + RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12, + RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13, + RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14, + RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15, + RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16, + RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17, + RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20, + RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21, + RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22, + RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23, + RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24, + RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25, + RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26, + RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27, + RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28, + RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29, + RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30, + RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31, + RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32, + RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33, + RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34, + RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35, + RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36, + RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37, + RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38, + RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39, + RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40, + RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41, + RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42, + RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43, + RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44, + RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45, + RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47, + RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49, + RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50, + RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51, + RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52, + RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53, + RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54, + RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55, + RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56, + RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57, + RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58, + RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59, + RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66, + RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67, + RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68, + RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69, + RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70, + RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71, + RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72, + RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73, + RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74, + RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75, + RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76, + RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77, + RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78, + RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79, + RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80, + RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81, + RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82, + RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83, + RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84, + RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85, + RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86, + RD_KAFKA_RESP_ERR_INVALID_RECORD = 87, + RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88, + RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89, + RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90, + RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91, + RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92, + RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93, + RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94, + RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95, + RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96, + RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID = 100, + RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH = 110, + RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID = 111, + RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR = 112, + RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH = 113, + RD_KAFKA_RESP_ERR_END_ALL, +} rd_kafka_resp_err_t; +struct rd_kafka_err_desc { + rd_kafka_resp_err_t code; + char *name; + char *desc; +}; +void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp); +const char *rd_kafka_err2str(rd_kafka_resp_err_t err); +const char *rd_kafka_err2name(rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_last_error(void); +rd_kafka_resp_err_t rd_kafka_errno2err(int errnox); +int rd_kafka_errno(void); +rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason); +rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error); +const char *rd_kafka_error_name(const rd_kafka_error_t *error); +const char *rd_kafka_error_string(const rd_kafka_error_t *error); +int rd_kafka_error_is_fatal(const rd_kafka_error_t *error); +int rd_kafka_error_is_retriable(const rd_kafka_error_t *error); +int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error); +void rd_kafka_error_destroy(rd_kafka_error_t *error); +rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...); +typedef struct rd_kafka_topic_partition_s { + char *topic; + int32_t partition; + int64_t offset; + void *metadata; + size_t metadata_size; + void *opaque; + rd_kafka_resp_err_t err; + void *_private; +} rd_kafka_topic_partition_t; +void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar); +void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch); +int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar); +typedef struct rd_kafka_topic_partition_list_s { + int cnt; + int size; + rd_kafka_topic_partition_t *elems; +} rd_kafka_topic_partition_list_t; +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size); +void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop); +int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx); +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src); +rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque); +typedef enum rd_kafka_vtype_t { + RD_KAFKA_VTYPE_END, + RD_KAFKA_VTYPE_TOPIC, + RD_KAFKA_VTYPE_RKT, + RD_KAFKA_VTYPE_PARTITION, + RD_KAFKA_VTYPE_VALUE, + RD_KAFKA_VTYPE_KEY, + RD_KAFKA_VTYPE_OPAQUE, + RD_KAFKA_VTYPE_MSGFLAGS, + RD_KAFKA_VTYPE_TIMESTAMP, + RD_KAFKA_VTYPE_HEADER, + RD_KAFKA_VTYPE_HEADERS, +} rd_kafka_vtype_t; +typedef struct rd_kafka_vu_s { + rd_kafka_vtype_t vtype; + union { + char *cstr; + rd_kafka_topic_t *rkt; + int i; + int32_t i32; + int64_t i64; + struct { + void *ptr; + size_t size; + } mem; + struct { + char *name; + void *val; + ssize_t size; + } header; + rd_kafka_headers_t *headers; + void *ptr; + char _pad[64]; + } u; +} rd_kafka_vu_t; +rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count); +void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs); +rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src); +rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size); +rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name); +rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep); +typedef struct rd_kafka_message_s { + rd_kafka_resp_err_t err; + rd_kafka_topic_t *rkt; + int32_t partition; + void *payload; + size_t len; + void *key; + size_t key_len; + int64_t offset; + void *_private; +} rd_kafka_message_t; +void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_produce_errstr(const rd_kafka_message_t *rkmessage); +int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype); +int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs); +size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs); +typedef enum { + RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0, + RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1, + RD_KAFKA_MSG_STATUS_PERSISTED = 2, +} rd_kafka_msg_status_t; +rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_Uuid_base64str(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_least_significant_bits(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_most_significant_bits(const rd_kafka_Uuid_t *uuid); +rd_kafka_Uuid_t *rd_kafka_Uuid_new(int64_t most_significant_bits, int64_t least_significant_bits); +rd_kafka_Uuid_t *rd_kafka_Uuid_copy(const rd_kafka_Uuid_t *uuid); +void rd_kafka_Uuid_destroy(rd_kafka_Uuid_t *uuid); +typedef enum { + RD_KAFKA_CONF_UNKNOWN = (- 2), + RD_KAFKA_CONF_INVALID = (- 1), + RD_KAFKA_CONF_OK = 0, +} rd_kafka_conf_res_t; +rd_kafka_conf_t *rd_kafka_conf_new(void); +void rd_kafka_conf_destroy(rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter); +const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk); +rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events); +void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque)); +void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque)); +void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque)); +void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque)); +void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque)); +void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque)); +void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque)); +void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque)); +void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable); +void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque)); +void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque)); +void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque)); +struct addrinfo; +void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque)); +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque)); +typedef enum rd_kafka_cert_type_t { + RD_KAFKA_CERT_PUBLIC_KEY, + RD_KAFKA_CERT_PRIVATE_KEY, + RD_KAFKA_CERT_CA, + RD_KAFKA_CERT__CNT, +} rd_kafka_cert_type_t; +typedef enum rd_kafka_cert_enc_t { + RD_KAFKA_CERT_ENC_PKCS12, + RD_KAFKA_CERT_ENC_DER, + RD_KAFKA_CERT_ENC_PEM, + RD_KAFKA_CERT_ENC__CNT, +} rd_kafka_cert_enc_t; +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data); +void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque); +void *rd_kafka_opaque(const rd_kafka_t *rk); +void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf); +rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf); +rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size); +rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size); +const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp); +const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp); +void rd_kafka_conf_dump_free(const char **arr, size_t cnt); +void rd_kafka_conf_properties_show(FILE *fp); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf); +rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk); +void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf); +rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque); +void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque)); +void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b)); +int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition); +int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size); +void rd_kafka_destroy(rd_kafka_t *rk); +void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags); +const char *rd_kafka_name(const rd_kafka_t *rk); +rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk); +char *rd_kafka_memberid(const rd_kafka_t *rk); +char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms); +int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms); +rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf); +void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt); +const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt); +void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt); +int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms); +void rd_kafka_yield(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high); +rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms); +void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size); +void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size); +void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr); +rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk); +void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu); +rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password); +rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition); +rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk); +void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst); +rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu); +void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size); +void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque); +void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu); +int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu); +int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition); +rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms); +rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms); +ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms); +ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets); +rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics); +rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics); +rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +int rd_kafka_consumer_closed(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions); +int rd_kafka_assignment_lost(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async); +rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async); +rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id); +const char *rd_kafka_consumer_group_metadata_member_id(const rd_kafka_consumer_group_metadata_t *group_metadata); +void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size); +int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque); +rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...); +rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt); +int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt); +rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags); +typedef struct rd_kafka_metadata_broker { + int32_t id; + char *host; + int port; +} rd_kafka_metadata_broker_t; +typedef struct rd_kafka_metadata_partition { + int32_t id; + rd_kafka_resp_err_t err; + int32_t leader; + int replica_cnt; + int32_t *replicas; + int isr_cnt; + int32_t *isrs; +} rd_kafka_metadata_partition_t; +typedef struct rd_kafka_metadata_topic { + char *topic; + int partition_cnt; + struct rd_kafka_metadata_partition *partitions; + rd_kafka_resp_err_t err; +} rd_kafka_metadata_topic_t; +typedef struct rd_kafka_metadata { + int broker_cnt; + struct rd_kafka_metadata_broker *brokers; + int topic_cnt; + struct rd_kafka_metadata_topic *topics; + int32_t orig_broker_id; + char *orig_broker_name; +} rd_kafka_metadata_t; +rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms); +void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata); +typedef struct rd_kafka_Node_s rd_kafka_Node_t; +int rd_kafka_Node_id(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_host(const rd_kafka_Node_t *node); +uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_rack(const rd_kafka_Node_t *node); +struct rd_kafka_group_member_info { + char *member_id; + char *client_id; + char *client_host; + void *member_metadata; + int member_metadata_size; + void *member_assignment; + int member_assignment_size; +}; +typedef enum { + RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0, + RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1, + RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2, + RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3, + RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4, + RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5, + RD_KAFKA_CONSUMER_GROUP_STATE__CNT, +} rd_kafka_consumer_group_state_t; +struct rd_kafka_group_info { + struct rd_kafka_metadata_broker broker; + char *group; + rd_kafka_resp_err_t err; + char *state; + char *protocol_type; + char *protocol; + struct rd_kafka_group_member_info *members; + int member_cnt; +}; +struct rd_kafka_group_list { + struct rd_kafka_group_info *groups; + int group_cnt; +}; +rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms); +const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state); +rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name); +void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist); +int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist); +void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_set_log_level(rd_kafka_t *rk, int level); +void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +int rd_kafka_outq_len(rd_kafka_t *rk); +void rd_kafka_dump(FILE *fp, rd_kafka_t *rk); +int rd_kafka_thread_cnt(void); +typedef enum rd_kafka_thread_type_t { + RD_KAFKA_THREAD_MAIN, + RD_KAFKA_THREAD_BACKGROUND, + RD_KAFKA_THREAD_BROKER, +} rd_kafka_thread_type_t; +int rd_kafka_wait_destroyed(int timeout_ms); +int rd_kafka_unittest(void); +rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk); +typedef int rd_kafka_event_type_t; +rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev); +const char *rd_kafka_event_name(const rd_kafka_event_t *rkev); +void rd_kafka_event_destroy(rd_kafka_event_t *rkev); +const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev); +size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size); +size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev); +const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev); +rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev); +const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev); +int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev); +void *rd_kafka_event_opaque(rd_kafka_event_t *rkev); +int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level); +int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize); +const char *rd_kafka_event_stats(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev); +typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t; +typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t; +typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_IncrementalAlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeCluster_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_AlterUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_ListOffsets_result_t; +const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_IncrementalAlterConfigs_result_t *rd_kafka_event_IncrementalAlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeTopics_result_t *rd_kafka_event_DescribeTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeCluster_result_t *rd_kafka_event_DescribeCluster_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_ListOffsets_result_t *rd_kafka_event_ListOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeUserScramCredentials_result_t *rd_kafka_event_DescribeUserScramCredentials_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterUserScramCredentials_result_t *rd_kafka_event_AlterUserScramCredentials_result(rd_kafka_event_t *rkev); +rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms); +int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms); +typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size); +typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres); +const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres); +const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres); +const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres); +typedef enum rd_kafka_admin_op_t { + RD_KAFKA_ADMIN_OP_ANY = 0, + RD_KAFKA_ADMIN_OP_CREATETOPICS, + RD_KAFKA_ADMIN_OP_DELETETOPICS, + RD_KAFKA_ADMIN_OP_CREATEPARTITIONS, + RD_KAFKA_ADMIN_OP_ALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS, + RD_KAFKA_ADMIN_OP_DELETERECORDS, + RD_KAFKA_ADMIN_OP_DELETEGROUPS, + RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_CREATEACLS, + RD_KAFKA_ADMIN_OP_DESCRIBEACLS, + RD_KAFKA_ADMIN_OP_DELETEACLS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_DESCRIBETOPICS, + RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER, + RD_KAFKA_ADMIN_OP_LISTOFFSETS, + RD_KAFKA_ADMIN_OP__CNT, +} rd_kafka_admin_op_t; +typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t; +typedef enum rd_kafka_IsolationLevel_t { + RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0, + RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1, +} rd_kafka_IsolationLevel_t; +rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api); +void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size); +rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_include_authorized_operations(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt); +rd_kafka_error_t *rd_kafka_AdminOptions_set_isolation_level(rd_kafka_AdminOptions_t *options, rd_kafka_IsolationLevel_t value); +void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque); +typedef enum rd_kafka_AclOperation_t { + RD_KAFKA_ACL_OPERATION_UNKNOWN = 0, + RD_KAFKA_ACL_OPERATION_ANY = 1, + RD_KAFKA_ACL_OPERATION_ALL = 2, + RD_KAFKA_ACL_OPERATION_READ = 3, + RD_KAFKA_ACL_OPERATION_WRITE = 4, + RD_KAFKA_ACL_OPERATION_CREATE = 5, + RD_KAFKA_ACL_OPERATION_DELETE = 6, + RD_KAFKA_ACL_OPERATION_ALTER = 7, + RD_KAFKA_ACL_OPERATION_DESCRIBE = 8, + RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9, + RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10, + RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11, + RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12, + RD_KAFKA_ACL_OPERATION__CNT, +} rd_kafka_AclOperation_t; +typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t; +rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size); +void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic); +void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value); +void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t; +rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic); +void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic); +void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt); +void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t; +rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size); +void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts); +void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt); +rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp); +typedef enum rd_kafka_ConfigSource_t { + RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3, + RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4, + RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5, + RD_KAFKA_CONFIG_SOURCE__CNT, +} rd_kafka_ConfigSource_t; +const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource); +typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t; +const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry); +const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry); +rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp); +typedef enum rd_kafka_ResourceType_t { + RD_KAFKA_RESOURCE_UNKNOWN = 0, + RD_KAFKA_RESOURCE_ANY = 1, + RD_KAFKA_RESOURCE_TOPIC = 2, + RD_KAFKA_RESOURCE_GROUP = 3, + RD_KAFKA_RESOURCE_BROKER = 4, + RD_KAFKA_RESOURCE__CNT, +} rd_kafka_ResourceType_t; +typedef enum rd_kafka_ResourcePatternType_t { + RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0, + RD_KAFKA_RESOURCE_PATTERN_ANY = 1, + RD_KAFKA_RESOURCE_PATTERN_MATCH = 2, + RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3, + RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4, + RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT, +} rd_kafka_ResourcePatternType_t; +typedef enum rd_kafka_AlterConfigOpType_t { + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3, + RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT, +} rd_kafka_AlterConfigOpType_t; +const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type); +const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype); +typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t; +rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname); +void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config); +void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt); +rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value); +rd_kafka_error_t *rd_kafka_ConfigResource_add_incremental_config(rd_kafka_ConfigResource_t *config, const char *name, rd_kafka_AlterConfigOpType_t op_type, const char *value); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp); +rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config); +rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config); +void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_IncrementalAlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_IncrementalAlterConfigs_result_resources(const rd_kafka_IncrementalAlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t; +rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets); +void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records); +void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt); +void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result); +typedef struct rd_kafka_TopicCollection_s rd_kafka_TopicCollection_t; +typedef struct rd_kafka_TopicPartitionInfo_s rd_kafka_TopicPartitionInfo_t; +typedef struct rd_kafka_TopicDescription_s rd_kafka_TopicDescription_t; +rd_kafka_TopicCollection_t *rd_kafka_TopicCollection_of_topic_names(const char **topics, size_t topics_cnt); +void rd_kafka_TopicCollection_destroy(rd_kafka_TopicCollection_t *topics); +void rd_kafka_DescribeTopics(rd_kafka_t *rk, const rd_kafka_TopicCollection_t *topics, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_TopicDescription_t **rd_kafka_DescribeTopics_result_topics(const rd_kafka_DescribeTopics_result_t *result, size_t *cntp); +const rd_kafka_TopicPartitionInfo_t **rd_kafka_TopicDescription_partitions(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const int rd_kafka_TopicPartitionInfo_partition(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t *rd_kafka_TopicPartitionInfo_leader(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_isr(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_replicas(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_TopicDescription_authorized_operations(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const char *rd_kafka_TopicDescription_name(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_Uuid_t *rd_kafka_TopicDescription_topic_id(const rd_kafka_TopicDescription_t *topicdesc); +int rd_kafka_TopicDescription_is_internal(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_error_t *rd_kafka_TopicDescription_error(const rd_kafka_TopicDescription_t *topicdesc); +void rd_kafka_DescribeCluster(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_Node_t **rd_kafka_DescribeCluster_result_nodes(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_DescribeCluster_result_authorized_operations(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_Node_t *rd_kafka_DescribeCluster_result_controller(const rd_kafka_DescribeCluster_result_t *result); +const char *rd_kafka_DescribeCluster_result_cluster_id(const rd_kafka_DescribeCluster_result_t *result); +typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t; +typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t; +void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist); +int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist); +const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t; +typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t; +typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t; +void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp); +const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_AclOperation_t *rd_kafka_ConsumerGroupDescription_authorized_operations(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t *cntp); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx); +const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member); +const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member); +const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment); +typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t; +rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group); +void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group); +void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt); +void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t; +rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets); +void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt); +void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t; +rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets); +void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt); +void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t; +rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets); +void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt); +void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef enum rd_kafka_OffsetSpec_t { + RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP = (- 3), + RD_KAFKA_OFFSET_SPEC_EARLIEST = (- 2), + RD_KAFKA_OFFSET_SPEC_LATEST = (- 1), +} rd_kafka_OffsetSpec_t; +typedef struct rd_kafka_ListOffsetsResultInfo_s rd_kafka_ListOffsetsResultInfo_t; +const rd_kafka_topic_partition_t *rd_kafka_ListOffsetsResultInfo_topic_partition(const rd_kafka_ListOffsetsResultInfo_t *result_info); +int64_t rd_kafka_ListOffsetsResultInfo_timestamp(const rd_kafka_ListOffsetsResultInfo_t *result_info); +const rd_kafka_ListOffsetsResultInfo_t **rd_kafka_ListOffsets_result_infos(const rd_kafka_ListOffsets_result_t *result, size_t *cntp); +void rd_kafka_ListOffsets(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *topic_partitions, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef enum rd_kafka_ScramMechanism_t { + RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0, + RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1, + RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2, + RD_KAFKA_SCRAM_MECHANISM__CNT, +} rd_kafka_ScramMechanism_t; +typedef struct rd_kafka_ScramCredentialInfo_s rd_kafka_ScramCredentialInfo_t; +rd_kafka_ScramMechanism_t rd_kafka_ScramCredentialInfo_mechanism(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +int32_t rd_kafka_ScramCredentialInfo_iterations(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +typedef struct rd_kafka_UserScramCredentialsDescription_s rd_kafka_UserScramCredentialsDescription_t; +const char *rd_kafka_UserScramCredentialsDescription_user(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_error_t *rd_kafka_UserScramCredentialsDescription_error(const rd_kafka_UserScramCredentialsDescription_t *description); +size_t rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_ScramCredentialInfo_t *rd_kafka_UserScramCredentialsDescription_scramcredentialinfo(const rd_kafka_UserScramCredentialsDescription_t *description, size_t idx); +const rd_kafka_UserScramCredentialsDescription_t **rd_kafka_DescribeUserScramCredentials_result_descriptions(const rd_kafka_DescribeUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_DescribeUserScramCredentials(rd_kafka_t *rk, const char **users, size_t user_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_UserScramCredentialAlteration_s rd_kafka_UserScramCredentialAlteration_t; +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialUpsertion_new(const char *username, rd_kafka_ScramMechanism_t mechanism, int32_t iterations, const unsigned char *password, size_t password_size, const unsigned char *salt, size_t salt_size); +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialDeletion_new(const char *username, rd_kafka_ScramMechanism_t mechanism); +void rd_kafka_UserScramCredentialAlteration_destroy(rd_kafka_UserScramCredentialAlteration_t *alteration); +void rd_kafka_UserScramCredentialAlteration_destroy_array(rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt); +typedef struct rd_kafka_AlterUserScramCredentials_result_response_s rd_kafka_AlterUserScramCredentials_result_response_t; +const char *rd_kafka_AlterUserScramCredentials_result_response_user(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_error_t *rd_kafka_AlterUserScramCredentials_result_response_error(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_AlterUserScramCredentials_result_response_t **rd_kafka_AlterUserScramCredentials_result_responses(const rd_kafka_AlterUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_AlterUserScramCredentials(rd_kafka_t *rk, rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t; +typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t; +const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres); +const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation); +typedef enum rd_kafka_AclPermissionType_t { + RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0, + RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1, + RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2, + RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3, + RD_KAFKA_ACL_PERMISSION_TYPE__CNT, +} rd_kafka_AclPermissionType_t; +const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type); +rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl); +rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl); +const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl); +void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding); +void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt); +const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp); +void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp); +void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t; +const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp); +const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response); +const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp); +void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr); +rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms); +rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms); +typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t; +rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt); +void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster); +rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster); +rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk); +const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey); +void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...); +void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors); +rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...); +rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp); +void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi); +rd_kafka_resp_err_t rd_kafka_mock_partition_push_leader_response(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition, int32_t leader_id, int32_t leader_epoch); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack); +rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion); +void rd_kafka_mock_start_request_tracking(rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_stop_request_tracking(rd_kafka_mock_cluster_t *mcluster); +typedef struct rd_kafka_mock_request_s rd_kafka_mock_request_t; +void rd_kafka_mock_request_destroy(rd_kafka_mock_request_t *mreq); +void rd_kafka_mock_request_destroy_array(rd_kafka_mock_request_t **mreqs, size_t mreq_cnt); +int32_t rd_kafka_mock_request_id(rd_kafka_mock_request_t *mreq); +int16_t rd_kafka_mock_request_api_key(rd_kafka_mock_request_t *mreq); +int64_t rd_kafka_mock_request_timestamp(rd_kafka_mock_request_t *mreq); +rd_kafka_mock_request_t **rd_kafka_mock_get_requests(rd_kafka_mock_cluster_t *mcluster, size_t *cntp); +void rd_kafka_mock_clear_requests(rd_kafka_mock_cluster_t *mcluster); +'; diff --git a/src/RdKafka/FFI/Versions/2.5.0.php b/src/RdKafka/FFI/Versions/2.5.0.php new file mode 100644 index 00000000..61abbb96 --- /dev/null +++ b/src/RdKafka/FFI/Versions/2.5.0.php @@ -0,0 +1,1060 @@ +librdkafka version + *Interpreted as hex MM.mm.rr.xx
:
E.g.: 0x000801ff
= 0.8.1
Unsupported compression type
+ * @since 2.5.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76; + +/** + * enum rd_kafka_resp_err_t + * @since 2.5.0 of librdkafka + */ +const RD_KAFKA_RESP_ERR_END_ALL = 119; + +/** + *Number of ops defined
+ * @since 2.5.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe + */ +const RD_KAFKA_ADMIN_OP__CNT = 22; + +/** + *Number of resource types defined
+ * @since 2.5.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + +/** + * rdkafka.h, rdkafka_mock.h + * @since 2.5.0 of librdkafka + */ +const RD_KAFKA_CDEF = 'typedef long int ssize_t; +typedef struct _IO_FILE FILE; +typedef long int mode_t; +typedef signed int int16_t; +typedef unsigned int uint16_t; +typedef signed int int32_t; +typedef signed long int int64_t; +int rd_kafka_version(void); +const char *rd_kafka_version_str(void); +typedef enum rd_kafka_type_t { + RD_KAFKA_PRODUCER, + RD_KAFKA_CONSUMER, +} rd_kafka_type_t; +typedef enum rd_kafka_timestamp_type_t { + RD_KAFKA_TIMESTAMP_NOT_AVAILABLE, + RD_KAFKA_TIMESTAMP_CREATE_TIME, + RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME, +} rd_kafka_timestamp_type_t; +const char *rd_kafka_get_debug_contexts(void); +typedef struct rd_kafka_s rd_kafka_t; +typedef struct rd_kafka_topic_s rd_kafka_topic_t; +typedef struct rd_kafka_conf_s rd_kafka_conf_t; +typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t; +typedef struct rd_kafka_queue_s rd_kafka_queue_t; +typedef struct rd_kafka_op_s rd_kafka_event_t; +typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t; +typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t; +typedef struct rd_kafka_error_s { + unsigned int code; + char *errstr; + unsigned char fatal; + unsigned char retriable; + unsigned char txn_requires_abort; +} rd_kafka_error_t; +typedef struct rd_kafka_headers_s rd_kafka_headers_t; +typedef struct rd_kafka_group_result_s rd_kafka_group_result_t; +typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t; +typedef struct rd_kafka_Uuid_s rd_kafka_Uuid_t; +typedef enum { + RD_KAFKA_RESP_ERR__BEGIN = (- 200), + RD_KAFKA_RESP_ERR__BAD_MSG = (- 199), + RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198), + RD_KAFKA_RESP_ERR__DESTROY = (- 197), + RD_KAFKA_RESP_ERR__FAIL = (- 196), + RD_KAFKA_RESP_ERR__TRANSPORT = (- 195), + RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194), + RD_KAFKA_RESP_ERR__RESOLVE = (- 193), + RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192), + RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191), + RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190), + RD_KAFKA_RESP_ERR__FS = (- 189), + RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188), + RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187), + RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186), + RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185), + RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184), + RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183), + RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182), + RD_KAFKA_RESP_ERR__SSL = (- 181), + RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180), + RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179), + RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178), + RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177), + RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176), + RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175), + RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174), + RD_KAFKA_RESP_ERR__CONFLICT = (- 173), + RD_KAFKA_RESP_ERR__STATE = (- 172), + RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171), + RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170), + RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169), + RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168), + RD_KAFKA_RESP_ERR__OUTDATED = (- 167), + RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166), + RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165), + RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164), + RD_KAFKA_RESP_ERR__INTR = (- 163), + RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162), + RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161), + RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160), + RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159), + RD_KAFKA_RESP_ERR__PARTIAL = (- 158), + RD_KAFKA_RESP_ERR__READ_ONLY = (- 157), + RD_KAFKA_RESP_ERR__NOENT = (- 156), + RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155), + RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154), + RD_KAFKA_RESP_ERR__RETRY = (- 153), + RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152), + RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151), + RD_KAFKA_RESP_ERR__FATAL = (- 150), + RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149), + RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148), + RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147), + RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146), + RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145), + RD_KAFKA_RESP_ERR__FENCED = (- 144), + RD_KAFKA_RESP_ERR__APPLICATION = (- 143), + RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142), + RD_KAFKA_RESP_ERR__NOOP = (- 141), + RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140), + RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139), + RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD = (- 138), + RD_KAFKA_RESP_ERR__END = (- 100), + RD_KAFKA_RESP_ERR_UNKNOWN = (- 1), + RD_KAFKA_RESP_ERR_NO_ERROR = 0, + RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1, + RD_KAFKA_RESP_ERR_INVALID_MSG = 2, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3, + RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4, + RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5, + RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6, + RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7, + RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8, + RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9, + RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10, + RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11, + RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12, + RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13, + RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14, + RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15, + RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16, + RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17, + RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20, + RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21, + RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22, + RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23, + RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24, + RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25, + RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26, + RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27, + RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28, + RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29, + RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30, + RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31, + RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32, + RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33, + RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34, + RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35, + RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36, + RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37, + RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38, + RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39, + RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40, + RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41, + RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42, + RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43, + RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44, + RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45, + RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47, + RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49, + RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50, + RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51, + RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52, + RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53, + RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54, + RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55, + RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56, + RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57, + RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58, + RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59, + RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66, + RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67, + RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68, + RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69, + RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70, + RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71, + RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72, + RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73, + RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74, + RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75, + RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76, + RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77, + RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78, + RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79, + RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80, + RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81, + RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82, + RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83, + RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84, + RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85, + RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86, + RD_KAFKA_RESP_ERR_INVALID_RECORD = 87, + RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88, + RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89, + RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90, + RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91, + RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92, + RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93, + RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94, + RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95, + RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96, + RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID = 100, + RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH = 110, + RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID = 111, + RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR = 112, + RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH = 113, + RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID = 117, + RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE = 118, + RD_KAFKA_RESP_ERR_END_ALL, +} rd_kafka_resp_err_t; +struct rd_kafka_err_desc { + rd_kafka_resp_err_t code; + char *name; + char *desc; +}; +void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp); +const char *rd_kafka_err2str(rd_kafka_resp_err_t err); +const char *rd_kafka_err2name(rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_last_error(void); +rd_kafka_resp_err_t rd_kafka_errno2err(int errnox); +int rd_kafka_errno(void); +rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason); +rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error); +const char *rd_kafka_error_name(const rd_kafka_error_t *error); +const char *rd_kafka_error_string(const rd_kafka_error_t *error); +int rd_kafka_error_is_fatal(const rd_kafka_error_t *error); +int rd_kafka_error_is_retriable(const rd_kafka_error_t *error); +int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error); +void rd_kafka_error_destroy(rd_kafka_error_t *error); +rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...); +typedef struct rd_kafka_topic_partition_s { + char *topic; + int32_t partition; + int64_t offset; + void *metadata; + size_t metadata_size; + void *opaque; + rd_kafka_resp_err_t err; + void *_private; +} rd_kafka_topic_partition_t; +void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar); +void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch); +int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar); +typedef struct rd_kafka_topic_partition_list_s { + int cnt; + int size; + rd_kafka_topic_partition_t *elems; +} rd_kafka_topic_partition_list_t; +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size); +void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop); +int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx); +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src); +rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque); +typedef enum rd_kafka_vtype_t { + RD_KAFKA_VTYPE_END, + RD_KAFKA_VTYPE_TOPIC, + RD_KAFKA_VTYPE_RKT, + RD_KAFKA_VTYPE_PARTITION, + RD_KAFKA_VTYPE_VALUE, + RD_KAFKA_VTYPE_KEY, + RD_KAFKA_VTYPE_OPAQUE, + RD_KAFKA_VTYPE_MSGFLAGS, + RD_KAFKA_VTYPE_TIMESTAMP, + RD_KAFKA_VTYPE_HEADER, + RD_KAFKA_VTYPE_HEADERS, +} rd_kafka_vtype_t; +typedef struct rd_kafka_vu_s { + rd_kafka_vtype_t vtype; + union { + char *cstr; + rd_kafka_topic_t *rkt; + int i; + int32_t i32; + int64_t i64; + struct { + void *ptr; + size_t size; + } mem; + struct { + char *name; + void *val; + ssize_t size; + } header; + rd_kafka_headers_t *headers; + void *ptr; + char _pad[64]; + } u; +} rd_kafka_vu_t; +rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count); +void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs); +rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src); +rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size); +rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name); +rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep); +typedef struct rd_kafka_message_s { + rd_kafka_resp_err_t err; + rd_kafka_topic_t *rkt; + int32_t partition; + void *payload; + size_t len; + void *key; + size_t key_len; + int64_t offset; + void *_private; +} rd_kafka_message_t; +void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_produce_errstr(const rd_kafka_message_t *rkmessage); +int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype); +int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs); +size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs); +typedef enum { + RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0, + RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1, + RD_KAFKA_MSG_STATUS_PERSISTED = 2, +} rd_kafka_msg_status_t; +rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_Uuid_base64str(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_least_significant_bits(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_most_significant_bits(const rd_kafka_Uuid_t *uuid); +rd_kafka_Uuid_t *rd_kafka_Uuid_new(int64_t most_significant_bits, int64_t least_significant_bits); +rd_kafka_Uuid_t *rd_kafka_Uuid_copy(const rd_kafka_Uuid_t *uuid); +void rd_kafka_Uuid_destroy(rd_kafka_Uuid_t *uuid); +typedef enum { + RD_KAFKA_CONF_UNKNOWN = (- 2), + RD_KAFKA_CONF_INVALID = (- 1), + RD_KAFKA_CONF_OK = 0, +} rd_kafka_conf_res_t; +rd_kafka_conf_t *rd_kafka_conf_new(void); +void rd_kafka_conf_destroy(rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter); +const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk); +rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events); +void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque)); +void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque)); +void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque)); +void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque)); +void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque)); +void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque)); +void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque)); +void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque)); +void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable); +void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque)); +void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque)); +void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque)); +struct addrinfo; +void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque)); +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque)); +typedef enum rd_kafka_cert_type_t { + RD_KAFKA_CERT_PUBLIC_KEY, + RD_KAFKA_CERT_PRIVATE_KEY, + RD_KAFKA_CERT_CA, + RD_KAFKA_CERT__CNT, +} rd_kafka_cert_type_t; +typedef enum rd_kafka_cert_enc_t { + RD_KAFKA_CERT_ENC_PKCS12, + RD_KAFKA_CERT_ENC_DER, + RD_KAFKA_CERT_ENC_PEM, + RD_KAFKA_CERT_ENC__CNT, +} rd_kafka_cert_enc_t; +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data); +void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque); +void *rd_kafka_opaque(const rd_kafka_t *rk); +void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf); +rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf); +rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size); +rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size); +const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp); +const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp); +void rd_kafka_conf_dump_free(const char **arr, size_t cnt); +void rd_kafka_conf_properties_show(FILE *fp); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf); +rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk); +void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf); +rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque); +void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque)); +void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b)); +int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition); +int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size); +void rd_kafka_destroy(rd_kafka_t *rk); +void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags); +const char *rd_kafka_name(const rd_kafka_t *rk); +rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk); +char *rd_kafka_memberid(const rd_kafka_t *rk); +char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms); +int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms); +rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf); +void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt); +const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt); +void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt); +int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms); +void rd_kafka_yield(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high); +rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms); +void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size); +void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size); +void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr); +rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk); +void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu); +rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password); +rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition); +rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk); +void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst); +rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu); +void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size); +void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque); +void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu); +int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu); +int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition); +rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms); +rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms); +ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms); +ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets); +rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics); +rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics); +rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +int rd_kafka_consumer_closed(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions); +int rd_kafka_assignment_lost(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async); +rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async); +rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id); +const char *rd_kafka_consumer_group_metadata_member_id(const rd_kafka_consumer_group_metadata_t *group_metadata); +void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size); +int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque); +rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...); +rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt); +int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt); +rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags); +typedef struct rd_kafka_metadata_broker { + int32_t id; + char *host; + int port; +} rd_kafka_metadata_broker_t; +typedef struct rd_kafka_metadata_partition { + int32_t id; + rd_kafka_resp_err_t err; + int32_t leader; + int replica_cnt; + int32_t *replicas; + int isr_cnt; + int32_t *isrs; +} rd_kafka_metadata_partition_t; +typedef struct rd_kafka_metadata_topic { + char *topic; + int partition_cnt; + struct rd_kafka_metadata_partition *partitions; + rd_kafka_resp_err_t err; +} rd_kafka_metadata_topic_t; +typedef struct rd_kafka_metadata { + int broker_cnt; + struct rd_kafka_metadata_broker *brokers; + int topic_cnt; + struct rd_kafka_metadata_topic *topics; + int32_t orig_broker_id; + char *orig_broker_name; +} rd_kafka_metadata_t; +rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms); +void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata); +typedef struct rd_kafka_Node_s rd_kafka_Node_t; +int rd_kafka_Node_id(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_host(const rd_kafka_Node_t *node); +uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_rack(const rd_kafka_Node_t *node); +struct rd_kafka_group_member_info { + char *member_id; + char *client_id; + char *client_host; + void *member_metadata; + int member_metadata_size; + void *member_assignment; + int member_assignment_size; +}; +typedef enum { + RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0, + RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1, + RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2, + RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3, + RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4, + RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5, + RD_KAFKA_CONSUMER_GROUP_STATE__CNT, +} rd_kafka_consumer_group_state_t; +struct rd_kafka_group_info { + struct rd_kafka_metadata_broker broker; + char *group; + rd_kafka_resp_err_t err; + char *state; + char *protocol_type; + char *protocol; + struct rd_kafka_group_member_info *members; + int member_cnt; +}; +struct rd_kafka_group_list { + struct rd_kafka_group_info *groups; + int group_cnt; +}; +rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms); +const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state); +rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name); +void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist); +int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist); +void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_set_log_level(rd_kafka_t *rk, int level); +void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +int rd_kafka_outq_len(rd_kafka_t *rk); +void rd_kafka_dump(FILE *fp, rd_kafka_t *rk); +int rd_kafka_thread_cnt(void); +typedef enum rd_kafka_thread_type_t { + RD_KAFKA_THREAD_MAIN, + RD_KAFKA_THREAD_BACKGROUND, + RD_KAFKA_THREAD_BROKER, +} rd_kafka_thread_type_t; +int rd_kafka_wait_destroyed(int timeout_ms); +int rd_kafka_unittest(void); +rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk); +typedef int rd_kafka_event_type_t; +rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev); +const char *rd_kafka_event_name(const rd_kafka_event_t *rkev); +void rd_kafka_event_destroy(rd_kafka_event_t *rkev); +const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev); +size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size); +size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev); +const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev); +rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev); +const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev); +int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev); +void *rd_kafka_event_opaque(rd_kafka_event_t *rkev); +int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level); +int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize); +const char *rd_kafka_event_stats(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev); +typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t; +typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t; +typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_IncrementalAlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeCluster_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_AlterUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_ListOffsets_result_t; +const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_IncrementalAlterConfigs_result_t *rd_kafka_event_IncrementalAlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeTopics_result_t *rd_kafka_event_DescribeTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeCluster_result_t *rd_kafka_event_DescribeCluster_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_ListOffsets_result_t *rd_kafka_event_ListOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeUserScramCredentials_result_t *rd_kafka_event_DescribeUserScramCredentials_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterUserScramCredentials_result_t *rd_kafka_event_AlterUserScramCredentials_result(rd_kafka_event_t *rkev); +rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms); +int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms); +typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size); +typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres); +const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres); +const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres); +const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres); +typedef enum rd_kafka_admin_op_t { + RD_KAFKA_ADMIN_OP_ANY = 0, + RD_KAFKA_ADMIN_OP_CREATETOPICS, + RD_KAFKA_ADMIN_OP_DELETETOPICS, + RD_KAFKA_ADMIN_OP_CREATEPARTITIONS, + RD_KAFKA_ADMIN_OP_ALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS, + RD_KAFKA_ADMIN_OP_DELETERECORDS, + RD_KAFKA_ADMIN_OP_DELETEGROUPS, + RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_CREATEACLS, + RD_KAFKA_ADMIN_OP_DESCRIBEACLS, + RD_KAFKA_ADMIN_OP_DELETEACLS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_DESCRIBETOPICS, + RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER, + RD_KAFKA_ADMIN_OP_LISTOFFSETS, + RD_KAFKA_ADMIN_OP__CNT, +} rd_kafka_admin_op_t; +typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t; +typedef enum rd_kafka_IsolationLevel_t { + RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0, + RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1, +} rd_kafka_IsolationLevel_t; +rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api); +void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size); +rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_include_authorized_operations(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt); +rd_kafka_error_t *rd_kafka_AdminOptions_set_isolation_level(rd_kafka_AdminOptions_t *options, rd_kafka_IsolationLevel_t value); +void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque); +typedef enum rd_kafka_AclOperation_t { + RD_KAFKA_ACL_OPERATION_UNKNOWN = 0, + RD_KAFKA_ACL_OPERATION_ANY = 1, + RD_KAFKA_ACL_OPERATION_ALL = 2, + RD_KAFKA_ACL_OPERATION_READ = 3, + RD_KAFKA_ACL_OPERATION_WRITE = 4, + RD_KAFKA_ACL_OPERATION_CREATE = 5, + RD_KAFKA_ACL_OPERATION_DELETE = 6, + RD_KAFKA_ACL_OPERATION_ALTER = 7, + RD_KAFKA_ACL_OPERATION_DESCRIBE = 8, + RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9, + RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10, + RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11, + RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12, + RD_KAFKA_ACL_OPERATION__CNT, +} rd_kafka_AclOperation_t; +typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t; +rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size); +void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic); +void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value); +void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t; +rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic); +void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic); +void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt); +void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t; +rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size); +void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts); +void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt); +rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp); +typedef enum rd_kafka_ConfigSource_t { + RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3, + RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4, + RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5, + RD_KAFKA_CONFIG_SOURCE__CNT, +} rd_kafka_ConfigSource_t; +const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource); +typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t; +const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry); +const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry); +rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp); +typedef enum rd_kafka_ResourceType_t { + RD_KAFKA_RESOURCE_UNKNOWN = 0, + RD_KAFKA_RESOURCE_ANY = 1, + RD_KAFKA_RESOURCE_TOPIC = 2, + RD_KAFKA_RESOURCE_GROUP = 3, + RD_KAFKA_RESOURCE_BROKER = 4, + RD_KAFKA_RESOURCE__CNT, +} rd_kafka_ResourceType_t; +typedef enum rd_kafka_ResourcePatternType_t { + RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0, + RD_KAFKA_RESOURCE_PATTERN_ANY = 1, + RD_KAFKA_RESOURCE_PATTERN_MATCH = 2, + RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3, + RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4, + RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT, +} rd_kafka_ResourcePatternType_t; +typedef enum rd_kafka_AlterConfigOpType_t { + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3, + RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT, +} rd_kafka_AlterConfigOpType_t; +const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type); +const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype); +typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t; +rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname); +void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config); +void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt); +rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value); +rd_kafka_error_t *rd_kafka_ConfigResource_add_incremental_config(rd_kafka_ConfigResource_t *config, const char *name, rd_kafka_AlterConfigOpType_t op_type, const char *value); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp); +rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config); +rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config); +void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_IncrementalAlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_IncrementalAlterConfigs_result_resources(const rd_kafka_IncrementalAlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t; +rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets); +void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records); +void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt); +void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result); +typedef struct rd_kafka_TopicCollection_s rd_kafka_TopicCollection_t; +typedef struct rd_kafka_TopicPartitionInfo_s rd_kafka_TopicPartitionInfo_t; +typedef struct rd_kafka_TopicDescription_s rd_kafka_TopicDescription_t; +rd_kafka_TopicCollection_t *rd_kafka_TopicCollection_of_topic_names(const char **topics, size_t topics_cnt); +void rd_kafka_TopicCollection_destroy(rd_kafka_TopicCollection_t *topics); +void rd_kafka_DescribeTopics(rd_kafka_t *rk, const rd_kafka_TopicCollection_t *topics, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_TopicDescription_t **rd_kafka_DescribeTopics_result_topics(const rd_kafka_DescribeTopics_result_t *result, size_t *cntp); +const rd_kafka_TopicPartitionInfo_t **rd_kafka_TopicDescription_partitions(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const int rd_kafka_TopicPartitionInfo_partition(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t *rd_kafka_TopicPartitionInfo_leader(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_isr(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_replicas(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_TopicDescription_authorized_operations(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const char *rd_kafka_TopicDescription_name(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_Uuid_t *rd_kafka_TopicDescription_topic_id(const rd_kafka_TopicDescription_t *topicdesc); +int rd_kafka_TopicDescription_is_internal(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_error_t *rd_kafka_TopicDescription_error(const rd_kafka_TopicDescription_t *topicdesc); +void rd_kafka_DescribeCluster(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_Node_t **rd_kafka_DescribeCluster_result_nodes(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_DescribeCluster_result_authorized_operations(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_Node_t *rd_kafka_DescribeCluster_result_controller(const rd_kafka_DescribeCluster_result_t *result); +const char *rd_kafka_DescribeCluster_result_cluster_id(const rd_kafka_DescribeCluster_result_t *result); +typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t; +typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t; +void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist); +int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist); +const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t; +typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t; +typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t; +void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp); +const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_AclOperation_t *rd_kafka_ConsumerGroupDescription_authorized_operations(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t *cntp); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx); +const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member); +const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member); +const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment); +typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t; +rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group); +void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group); +void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt); +void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t; +rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets); +void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt); +void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t; +rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets); +void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt); +void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t; +rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets); +void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt); +void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef enum rd_kafka_OffsetSpec_t { + RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP = (- 3), + RD_KAFKA_OFFSET_SPEC_EARLIEST = (- 2), + RD_KAFKA_OFFSET_SPEC_LATEST = (- 1), +} rd_kafka_OffsetSpec_t; +typedef struct rd_kafka_ListOffsetsResultInfo_s rd_kafka_ListOffsetsResultInfo_t; +const rd_kafka_topic_partition_t *rd_kafka_ListOffsetsResultInfo_topic_partition(const rd_kafka_ListOffsetsResultInfo_t *result_info); +int64_t rd_kafka_ListOffsetsResultInfo_timestamp(const rd_kafka_ListOffsetsResultInfo_t *result_info); +const rd_kafka_ListOffsetsResultInfo_t **rd_kafka_ListOffsets_result_infos(const rd_kafka_ListOffsets_result_t *result, size_t *cntp); +void rd_kafka_ListOffsets(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *topic_partitions, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef enum rd_kafka_ScramMechanism_t { + RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0, + RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1, + RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2, + RD_KAFKA_SCRAM_MECHANISM__CNT, +} rd_kafka_ScramMechanism_t; +typedef struct rd_kafka_ScramCredentialInfo_s rd_kafka_ScramCredentialInfo_t; +rd_kafka_ScramMechanism_t rd_kafka_ScramCredentialInfo_mechanism(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +int32_t rd_kafka_ScramCredentialInfo_iterations(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +typedef struct rd_kafka_UserScramCredentialsDescription_s rd_kafka_UserScramCredentialsDescription_t; +const char *rd_kafka_UserScramCredentialsDescription_user(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_error_t *rd_kafka_UserScramCredentialsDescription_error(const rd_kafka_UserScramCredentialsDescription_t *description); +size_t rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_ScramCredentialInfo_t *rd_kafka_UserScramCredentialsDescription_scramcredentialinfo(const rd_kafka_UserScramCredentialsDescription_t *description, size_t idx); +const rd_kafka_UserScramCredentialsDescription_t **rd_kafka_DescribeUserScramCredentials_result_descriptions(const rd_kafka_DescribeUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_DescribeUserScramCredentials(rd_kafka_t *rk, const char **users, size_t user_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_UserScramCredentialAlteration_s rd_kafka_UserScramCredentialAlteration_t; +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialUpsertion_new(const char *username, rd_kafka_ScramMechanism_t mechanism, int32_t iterations, const unsigned char *password, size_t password_size, const unsigned char *salt, size_t salt_size); +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialDeletion_new(const char *username, rd_kafka_ScramMechanism_t mechanism); +void rd_kafka_UserScramCredentialAlteration_destroy(rd_kafka_UserScramCredentialAlteration_t *alteration); +void rd_kafka_UserScramCredentialAlteration_destroy_array(rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt); +typedef struct rd_kafka_AlterUserScramCredentials_result_response_s rd_kafka_AlterUserScramCredentials_result_response_t; +const char *rd_kafka_AlterUserScramCredentials_result_response_user(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_error_t *rd_kafka_AlterUserScramCredentials_result_response_error(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_AlterUserScramCredentials_result_response_t **rd_kafka_AlterUserScramCredentials_result_responses(const rd_kafka_AlterUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_AlterUserScramCredentials(rd_kafka_t *rk, rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t; +typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t; +const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres); +const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation); +typedef enum rd_kafka_AclPermissionType_t { + RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0, + RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1, + RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2, + RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3, + RD_KAFKA_ACL_PERMISSION_TYPE__CNT, +} rd_kafka_AclPermissionType_t; +const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type); +rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl); +rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl); +const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl); +void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding); +void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt); +const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp); +void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp); +void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t; +const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp); +const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response); +const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp); +void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr); +rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms); +rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms); +typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t; +rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt); +void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster); +rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster); +rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk); +const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey); +void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...); +void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors); +rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...); +rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp); +void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi); +rd_kafka_resp_err_t rd_kafka_mock_partition_push_leader_response(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition, int32_t leader_id, int32_t leader_epoch); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack); +rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion); +void rd_kafka_mock_start_request_tracking(rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_stop_request_tracking(rd_kafka_mock_cluster_t *mcluster); +typedef struct rd_kafka_mock_request_s rd_kafka_mock_request_t; +void rd_kafka_mock_request_destroy(rd_kafka_mock_request_t *mreq); +void rd_kafka_mock_request_destroy_array(rd_kafka_mock_request_t **mreqs, size_t mreq_cnt); +int32_t rd_kafka_mock_request_id(rd_kafka_mock_request_t *mreq); +int16_t rd_kafka_mock_request_api_key(rd_kafka_mock_request_t *mreq); +int64_t rd_kafka_mock_request_timestamp(rd_kafka_mock_request_t *mreq); +rd_kafka_mock_request_t **rd_kafka_mock_get_requests(rd_kafka_mock_cluster_t *mcluster, size_t *cntp); +void rd_kafka_mock_clear_requests(rd_kafka_mock_cluster_t *mcluster); +rd_kafka_resp_err_t rd_kafka_mock_telemetry_set_requested_metrics(rd_kafka_mock_cluster_t *mcluster, char **metrics, size_t metrics_cnt); +rd_kafka_resp_err_t rd_kafka_mock_telemetry_set_push_interval(rd_kafka_mock_cluster_t *mcluster, int64_t push_interval_ms); +'; diff --git a/src/RdKafka/FFI/Versions/2.5.3.php b/src/RdKafka/FFI/Versions/2.5.3.php new file mode 100644 index 00000000..f0d6954e --- /dev/null +++ b/src/RdKafka/FFI/Versions/2.5.3.php @@ -0,0 +1,1060 @@ +librdkafka version + *Interpreted as hex MM.mm.rr.xx
:
E.g.: 0x000801ff
= 0.8.1
Unsupported compression type
+ * @since 2.5.3 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76; + +/** + * enum rd_kafka_resp_err_t + * @since 2.5.3 of librdkafka + */ +const RD_KAFKA_RESP_ERR_END_ALL = 119; + +/** + *Number of ops defined
+ * @since 2.5.3 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe + */ +const RD_KAFKA_ADMIN_OP__CNT = 22; + +/** + *Number of resource types defined
+ * @since 2.5.3 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 5; + +/** + * rdkafka.h, rdkafka_mock.h + * @since 2.5.3 of librdkafka + */ +const RD_KAFKA_CDEF = 'typedef long int ssize_t; +typedef struct _IO_FILE FILE; +typedef long int mode_t; +typedef signed int int16_t; +typedef unsigned int uint16_t; +typedef signed int int32_t; +typedef signed long int int64_t; +int rd_kafka_version(void); +const char *rd_kafka_version_str(void); +typedef enum rd_kafka_type_t { + RD_KAFKA_PRODUCER, + RD_KAFKA_CONSUMER, +} rd_kafka_type_t; +typedef enum rd_kafka_timestamp_type_t { + RD_KAFKA_TIMESTAMP_NOT_AVAILABLE, + RD_KAFKA_TIMESTAMP_CREATE_TIME, + RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME, +} rd_kafka_timestamp_type_t; +const char *rd_kafka_get_debug_contexts(void); +typedef struct rd_kafka_s rd_kafka_t; +typedef struct rd_kafka_topic_s rd_kafka_topic_t; +typedef struct rd_kafka_conf_s rd_kafka_conf_t; +typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t; +typedef struct rd_kafka_queue_s rd_kafka_queue_t; +typedef struct rd_kafka_op_s rd_kafka_event_t; +typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t; +typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t; +typedef struct rd_kafka_error_s { + unsigned int code; + char *errstr; + unsigned char fatal; + unsigned char retriable; + unsigned char txn_requires_abort; +} rd_kafka_error_t; +typedef struct rd_kafka_headers_s rd_kafka_headers_t; +typedef struct rd_kafka_group_result_s rd_kafka_group_result_t; +typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t; +typedef struct rd_kafka_Uuid_s rd_kafka_Uuid_t; +typedef enum { + RD_KAFKA_RESP_ERR__BEGIN = (- 200), + RD_KAFKA_RESP_ERR__BAD_MSG = (- 199), + RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198), + RD_KAFKA_RESP_ERR__DESTROY = (- 197), + RD_KAFKA_RESP_ERR__FAIL = (- 196), + RD_KAFKA_RESP_ERR__TRANSPORT = (- 195), + RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194), + RD_KAFKA_RESP_ERR__RESOLVE = (- 193), + RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192), + RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191), + RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190), + RD_KAFKA_RESP_ERR__FS = (- 189), + RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188), + RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187), + RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186), + RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185), + RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184), + RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183), + RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182), + RD_KAFKA_RESP_ERR__SSL = (- 181), + RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180), + RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179), + RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178), + RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177), + RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176), + RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175), + RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174), + RD_KAFKA_RESP_ERR__CONFLICT = (- 173), + RD_KAFKA_RESP_ERR__STATE = (- 172), + RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171), + RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170), + RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169), + RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168), + RD_KAFKA_RESP_ERR__OUTDATED = (- 167), + RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166), + RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165), + RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164), + RD_KAFKA_RESP_ERR__INTR = (- 163), + RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162), + RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161), + RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160), + RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159), + RD_KAFKA_RESP_ERR__PARTIAL = (- 158), + RD_KAFKA_RESP_ERR__READ_ONLY = (- 157), + RD_KAFKA_RESP_ERR__NOENT = (- 156), + RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155), + RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154), + RD_KAFKA_RESP_ERR__RETRY = (- 153), + RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152), + RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151), + RD_KAFKA_RESP_ERR__FATAL = (- 150), + RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149), + RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148), + RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147), + RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146), + RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145), + RD_KAFKA_RESP_ERR__FENCED = (- 144), + RD_KAFKA_RESP_ERR__APPLICATION = (- 143), + RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142), + RD_KAFKA_RESP_ERR__NOOP = (- 141), + RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140), + RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139), + RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD = (- 138), + RD_KAFKA_RESP_ERR__END = (- 100), + RD_KAFKA_RESP_ERR_UNKNOWN = (- 1), + RD_KAFKA_RESP_ERR_NO_ERROR = 0, + RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1, + RD_KAFKA_RESP_ERR_INVALID_MSG = 2, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3, + RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4, + RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5, + RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6, + RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7, + RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8, + RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9, + RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10, + RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11, + RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12, + RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13, + RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14, + RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15, + RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16, + RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17, + RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20, + RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21, + RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22, + RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23, + RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24, + RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25, + RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26, + RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27, + RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28, + RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29, + RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30, + RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31, + RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32, + RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33, + RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34, + RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35, + RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36, + RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37, + RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38, + RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39, + RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40, + RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41, + RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42, + RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43, + RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44, + RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45, + RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47, + RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49, + RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50, + RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51, + RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52, + RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53, + RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54, + RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55, + RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56, + RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57, + RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58, + RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59, + RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66, + RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67, + RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68, + RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69, + RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70, + RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71, + RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72, + RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73, + RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74, + RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75, + RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76, + RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77, + RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78, + RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79, + RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80, + RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81, + RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82, + RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83, + RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84, + RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85, + RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86, + RD_KAFKA_RESP_ERR_INVALID_RECORD = 87, + RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88, + RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89, + RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90, + RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91, + RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92, + RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93, + RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94, + RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95, + RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96, + RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID = 100, + RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH = 110, + RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID = 111, + RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR = 112, + RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH = 113, + RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID = 117, + RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE = 118, + RD_KAFKA_RESP_ERR_END_ALL, +} rd_kafka_resp_err_t; +struct rd_kafka_err_desc { + rd_kafka_resp_err_t code; + char *name; + char *desc; +}; +void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp); +const char *rd_kafka_err2str(rd_kafka_resp_err_t err); +const char *rd_kafka_err2name(rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_last_error(void); +rd_kafka_resp_err_t rd_kafka_errno2err(int errnox); +int rd_kafka_errno(void); +rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason); +rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error); +const char *rd_kafka_error_name(const rd_kafka_error_t *error); +const char *rd_kafka_error_string(const rd_kafka_error_t *error); +int rd_kafka_error_is_fatal(const rd_kafka_error_t *error); +int rd_kafka_error_is_retriable(const rd_kafka_error_t *error); +int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error); +void rd_kafka_error_destroy(rd_kafka_error_t *error); +rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...); +typedef struct rd_kafka_topic_partition_s { + char *topic; + int32_t partition; + int64_t offset; + void *metadata; + size_t metadata_size; + void *opaque; + rd_kafka_resp_err_t err; + void *_private; +} rd_kafka_topic_partition_t; +void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar); +void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch); +int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar); +typedef struct rd_kafka_topic_partition_list_s { + int cnt; + int size; + rd_kafka_topic_partition_t *elems; +} rd_kafka_topic_partition_list_t; +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size); +void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop); +int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx); +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src); +rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque); +typedef enum rd_kafka_vtype_t { + RD_KAFKA_VTYPE_END, + RD_KAFKA_VTYPE_TOPIC, + RD_KAFKA_VTYPE_RKT, + RD_KAFKA_VTYPE_PARTITION, + RD_KAFKA_VTYPE_VALUE, + RD_KAFKA_VTYPE_KEY, + RD_KAFKA_VTYPE_OPAQUE, + RD_KAFKA_VTYPE_MSGFLAGS, + RD_KAFKA_VTYPE_TIMESTAMP, + RD_KAFKA_VTYPE_HEADER, + RD_KAFKA_VTYPE_HEADERS, +} rd_kafka_vtype_t; +typedef struct rd_kafka_vu_s { + rd_kafka_vtype_t vtype; + union { + char *cstr; + rd_kafka_topic_t *rkt; + int i; + int32_t i32; + int64_t i64; + struct { + void *ptr; + size_t size; + } mem; + struct { + char *name; + void *val; + ssize_t size; + } header; + rd_kafka_headers_t *headers; + void *ptr; + char _pad[64]; + } u; +} rd_kafka_vu_t; +rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count); +void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs); +rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src); +rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size); +rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name); +rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep); +typedef struct rd_kafka_message_s { + rd_kafka_resp_err_t err; + rd_kafka_topic_t *rkt; + int32_t partition; + void *payload; + size_t len; + void *key; + size_t key_len; + int64_t offset; + void *_private; +} rd_kafka_message_t; +void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_produce_errstr(const rd_kafka_message_t *rkmessage); +int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype); +int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs); +size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs); +typedef enum { + RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0, + RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1, + RD_KAFKA_MSG_STATUS_PERSISTED = 2, +} rd_kafka_msg_status_t; +rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_Uuid_base64str(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_least_significant_bits(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_most_significant_bits(const rd_kafka_Uuid_t *uuid); +rd_kafka_Uuid_t *rd_kafka_Uuid_new(int64_t most_significant_bits, int64_t least_significant_bits); +rd_kafka_Uuid_t *rd_kafka_Uuid_copy(const rd_kafka_Uuid_t *uuid); +void rd_kafka_Uuid_destroy(rd_kafka_Uuid_t *uuid); +typedef enum { + RD_KAFKA_CONF_UNKNOWN = (- 2), + RD_KAFKA_CONF_INVALID = (- 1), + RD_KAFKA_CONF_OK = 0, +} rd_kafka_conf_res_t; +rd_kafka_conf_t *rd_kafka_conf_new(void); +void rd_kafka_conf_destroy(rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter); +const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk); +rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events); +void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque)); +void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque)); +void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque)); +void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque)); +void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque)); +void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque)); +void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque)); +void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque)); +void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable); +void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque)); +void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque)); +void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque)); +struct addrinfo; +void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque)); +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque)); +typedef enum rd_kafka_cert_type_t { + RD_KAFKA_CERT_PUBLIC_KEY, + RD_KAFKA_CERT_PRIVATE_KEY, + RD_KAFKA_CERT_CA, + RD_KAFKA_CERT__CNT, +} rd_kafka_cert_type_t; +typedef enum rd_kafka_cert_enc_t { + RD_KAFKA_CERT_ENC_PKCS12, + RD_KAFKA_CERT_ENC_DER, + RD_KAFKA_CERT_ENC_PEM, + RD_KAFKA_CERT_ENC__CNT, +} rd_kafka_cert_enc_t; +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data); +void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque); +void *rd_kafka_opaque(const rd_kafka_t *rk); +void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf); +rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf); +rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size); +rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size); +const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp); +const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp); +void rd_kafka_conf_dump_free(const char **arr, size_t cnt); +void rd_kafka_conf_properties_show(FILE *fp); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf); +rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk); +void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf); +rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque); +void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque)); +void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b)); +int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition); +int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size); +void rd_kafka_destroy(rd_kafka_t *rk); +void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags); +const char *rd_kafka_name(const rd_kafka_t *rk); +rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk); +char *rd_kafka_memberid(const rd_kafka_t *rk); +char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms); +int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms); +rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf); +void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt); +const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt); +void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt); +int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms); +void rd_kafka_yield(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high); +rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms); +void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size); +void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size); +void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr); +rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk); +void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu); +rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password); +rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition); +rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk); +void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst); +rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu); +void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size); +void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque); +void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu); +int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu); +int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition); +rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms); +rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms); +ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms); +ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets); +rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics); +rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics); +rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +int rd_kafka_consumer_closed(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions); +int rd_kafka_assignment_lost(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async); +rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async); +rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id); +const char *rd_kafka_consumer_group_metadata_member_id(const rd_kafka_consumer_group_metadata_t *group_metadata); +void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size); +int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque); +rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...); +rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt); +int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt); +rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags); +typedef struct rd_kafka_metadata_broker { + int32_t id; + char *host; + int port; +} rd_kafka_metadata_broker_t; +typedef struct rd_kafka_metadata_partition { + int32_t id; + rd_kafka_resp_err_t err; + int32_t leader; + int replica_cnt; + int32_t *replicas; + int isr_cnt; + int32_t *isrs; +} rd_kafka_metadata_partition_t; +typedef struct rd_kafka_metadata_topic { + char *topic; + int partition_cnt; + struct rd_kafka_metadata_partition *partitions; + rd_kafka_resp_err_t err; +} rd_kafka_metadata_topic_t; +typedef struct rd_kafka_metadata { + int broker_cnt; + struct rd_kafka_metadata_broker *brokers; + int topic_cnt; + struct rd_kafka_metadata_topic *topics; + int32_t orig_broker_id; + char *orig_broker_name; +} rd_kafka_metadata_t; +rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms); +void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata); +typedef struct rd_kafka_Node_s rd_kafka_Node_t; +int rd_kafka_Node_id(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_host(const rd_kafka_Node_t *node); +uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_rack(const rd_kafka_Node_t *node); +struct rd_kafka_group_member_info { + char *member_id; + char *client_id; + char *client_host; + void *member_metadata; + int member_metadata_size; + void *member_assignment; + int member_assignment_size; +}; +typedef enum { + RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0, + RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1, + RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2, + RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3, + RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4, + RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5, + RD_KAFKA_CONSUMER_GROUP_STATE__CNT, +} rd_kafka_consumer_group_state_t; +struct rd_kafka_group_info { + struct rd_kafka_metadata_broker broker; + char *group; + rd_kafka_resp_err_t err; + char *state; + char *protocol_type; + char *protocol; + struct rd_kafka_group_member_info *members; + int member_cnt; +}; +struct rd_kafka_group_list { + struct rd_kafka_group_info *groups; + int group_cnt; +}; +rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms); +const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state); +rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name); +void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist); +int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist); +void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_set_log_level(rd_kafka_t *rk, int level); +void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +int rd_kafka_outq_len(rd_kafka_t *rk); +void rd_kafka_dump(FILE *fp, rd_kafka_t *rk); +int rd_kafka_thread_cnt(void); +typedef enum rd_kafka_thread_type_t { + RD_KAFKA_THREAD_MAIN, + RD_KAFKA_THREAD_BACKGROUND, + RD_KAFKA_THREAD_BROKER, +} rd_kafka_thread_type_t; +int rd_kafka_wait_destroyed(int timeout_ms); +int rd_kafka_unittest(void); +rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk); +typedef int rd_kafka_event_type_t; +rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev); +const char *rd_kafka_event_name(const rd_kafka_event_t *rkev); +void rd_kafka_event_destroy(rd_kafka_event_t *rkev); +const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev); +size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size); +size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev); +const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev); +rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev); +const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev); +int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev); +void *rd_kafka_event_opaque(rd_kafka_event_t *rkev); +int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level); +int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize); +const char *rd_kafka_event_stats(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev); +typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t; +typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t; +typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_IncrementalAlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeCluster_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_AlterUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_ListOffsets_result_t; +const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_IncrementalAlterConfigs_result_t *rd_kafka_event_IncrementalAlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeTopics_result_t *rd_kafka_event_DescribeTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeCluster_result_t *rd_kafka_event_DescribeCluster_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_ListOffsets_result_t *rd_kafka_event_ListOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeUserScramCredentials_result_t *rd_kafka_event_DescribeUserScramCredentials_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterUserScramCredentials_result_t *rd_kafka_event_AlterUserScramCredentials_result(rd_kafka_event_t *rkev); +rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms); +int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms); +typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size); +typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres); +const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres); +const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres); +const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres); +typedef enum rd_kafka_admin_op_t { + RD_KAFKA_ADMIN_OP_ANY = 0, + RD_KAFKA_ADMIN_OP_CREATETOPICS, + RD_KAFKA_ADMIN_OP_DELETETOPICS, + RD_KAFKA_ADMIN_OP_CREATEPARTITIONS, + RD_KAFKA_ADMIN_OP_ALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS, + RD_KAFKA_ADMIN_OP_DELETERECORDS, + RD_KAFKA_ADMIN_OP_DELETEGROUPS, + RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_CREATEACLS, + RD_KAFKA_ADMIN_OP_DESCRIBEACLS, + RD_KAFKA_ADMIN_OP_DELETEACLS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_DESCRIBETOPICS, + RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER, + RD_KAFKA_ADMIN_OP_LISTOFFSETS, + RD_KAFKA_ADMIN_OP__CNT, +} rd_kafka_admin_op_t; +typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t; +typedef enum rd_kafka_IsolationLevel_t { + RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0, + RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1, +} rd_kafka_IsolationLevel_t; +rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api); +void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size); +rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_include_authorized_operations(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt); +rd_kafka_error_t *rd_kafka_AdminOptions_set_isolation_level(rd_kafka_AdminOptions_t *options, rd_kafka_IsolationLevel_t value); +void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque); +typedef enum rd_kafka_AclOperation_t { + RD_KAFKA_ACL_OPERATION_UNKNOWN = 0, + RD_KAFKA_ACL_OPERATION_ANY = 1, + RD_KAFKA_ACL_OPERATION_ALL = 2, + RD_KAFKA_ACL_OPERATION_READ = 3, + RD_KAFKA_ACL_OPERATION_WRITE = 4, + RD_KAFKA_ACL_OPERATION_CREATE = 5, + RD_KAFKA_ACL_OPERATION_DELETE = 6, + RD_KAFKA_ACL_OPERATION_ALTER = 7, + RD_KAFKA_ACL_OPERATION_DESCRIBE = 8, + RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9, + RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10, + RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11, + RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12, + RD_KAFKA_ACL_OPERATION__CNT, +} rd_kafka_AclOperation_t; +typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t; +rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size); +void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic); +void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value); +void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t; +rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic); +void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic); +void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt); +void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t; +rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size); +void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts); +void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt); +rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp); +typedef enum rd_kafka_ConfigSource_t { + RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3, + RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4, + RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5, + RD_KAFKA_CONFIG_SOURCE__CNT, +} rd_kafka_ConfigSource_t; +const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource); +typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t; +const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry); +const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry); +rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp); +typedef enum rd_kafka_ResourceType_t { + RD_KAFKA_RESOURCE_UNKNOWN = 0, + RD_KAFKA_RESOURCE_ANY = 1, + RD_KAFKA_RESOURCE_TOPIC = 2, + RD_KAFKA_RESOURCE_GROUP = 3, + RD_KAFKA_RESOURCE_BROKER = 4, + RD_KAFKA_RESOURCE__CNT, +} rd_kafka_ResourceType_t; +typedef enum rd_kafka_ResourcePatternType_t { + RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0, + RD_KAFKA_RESOURCE_PATTERN_ANY = 1, + RD_KAFKA_RESOURCE_PATTERN_MATCH = 2, + RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3, + RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4, + RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT, +} rd_kafka_ResourcePatternType_t; +typedef enum rd_kafka_AlterConfigOpType_t { + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3, + RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT, +} rd_kafka_AlterConfigOpType_t; +const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type); +const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype); +typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t; +rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname); +void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config); +void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt); +rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value); +rd_kafka_error_t *rd_kafka_ConfigResource_add_incremental_config(rd_kafka_ConfigResource_t *config, const char *name, rd_kafka_AlterConfigOpType_t op_type, const char *value); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp); +rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config); +rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config); +void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_IncrementalAlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_IncrementalAlterConfigs_result_resources(const rd_kafka_IncrementalAlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t; +rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets); +void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records); +void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt); +void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result); +typedef struct rd_kafka_TopicCollection_s rd_kafka_TopicCollection_t; +typedef struct rd_kafka_TopicPartitionInfo_s rd_kafka_TopicPartitionInfo_t; +typedef struct rd_kafka_TopicDescription_s rd_kafka_TopicDescription_t; +rd_kafka_TopicCollection_t *rd_kafka_TopicCollection_of_topic_names(const char **topics, size_t topics_cnt); +void rd_kafka_TopicCollection_destroy(rd_kafka_TopicCollection_t *topics); +void rd_kafka_DescribeTopics(rd_kafka_t *rk, const rd_kafka_TopicCollection_t *topics, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_TopicDescription_t **rd_kafka_DescribeTopics_result_topics(const rd_kafka_DescribeTopics_result_t *result, size_t *cntp); +const rd_kafka_TopicPartitionInfo_t **rd_kafka_TopicDescription_partitions(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const int rd_kafka_TopicPartitionInfo_partition(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t *rd_kafka_TopicPartitionInfo_leader(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_isr(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_replicas(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_TopicDescription_authorized_operations(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const char *rd_kafka_TopicDescription_name(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_Uuid_t *rd_kafka_TopicDescription_topic_id(const rd_kafka_TopicDescription_t *topicdesc); +int rd_kafka_TopicDescription_is_internal(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_error_t *rd_kafka_TopicDescription_error(const rd_kafka_TopicDescription_t *topicdesc); +void rd_kafka_DescribeCluster(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_Node_t **rd_kafka_DescribeCluster_result_nodes(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_DescribeCluster_result_authorized_operations(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_Node_t *rd_kafka_DescribeCluster_result_controller(const rd_kafka_DescribeCluster_result_t *result); +const char *rd_kafka_DescribeCluster_result_cluster_id(const rd_kafka_DescribeCluster_result_t *result); +typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t; +typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t; +void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist); +int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist); +const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t; +typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t; +typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t; +void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp); +const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_AclOperation_t *rd_kafka_ConsumerGroupDescription_authorized_operations(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t *cntp); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx); +const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member); +const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member); +const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment); +typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t; +rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group); +void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group); +void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt); +void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t; +rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets); +void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt); +void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t; +rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets); +void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt); +void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t; +rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets); +void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt); +void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef enum rd_kafka_OffsetSpec_t { + RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP = (- 3), + RD_KAFKA_OFFSET_SPEC_EARLIEST = (- 2), + RD_KAFKA_OFFSET_SPEC_LATEST = (- 1), +} rd_kafka_OffsetSpec_t; +typedef struct rd_kafka_ListOffsetsResultInfo_s rd_kafka_ListOffsetsResultInfo_t; +const rd_kafka_topic_partition_t *rd_kafka_ListOffsetsResultInfo_topic_partition(const rd_kafka_ListOffsetsResultInfo_t *result_info); +int64_t rd_kafka_ListOffsetsResultInfo_timestamp(const rd_kafka_ListOffsetsResultInfo_t *result_info); +const rd_kafka_ListOffsetsResultInfo_t **rd_kafka_ListOffsets_result_infos(const rd_kafka_ListOffsets_result_t *result, size_t *cntp); +void rd_kafka_ListOffsets(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *topic_partitions, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef enum rd_kafka_ScramMechanism_t { + RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0, + RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1, + RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2, + RD_KAFKA_SCRAM_MECHANISM__CNT, +} rd_kafka_ScramMechanism_t; +typedef struct rd_kafka_ScramCredentialInfo_s rd_kafka_ScramCredentialInfo_t; +rd_kafka_ScramMechanism_t rd_kafka_ScramCredentialInfo_mechanism(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +int32_t rd_kafka_ScramCredentialInfo_iterations(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +typedef struct rd_kafka_UserScramCredentialsDescription_s rd_kafka_UserScramCredentialsDescription_t; +const char *rd_kafka_UserScramCredentialsDescription_user(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_error_t *rd_kafka_UserScramCredentialsDescription_error(const rd_kafka_UserScramCredentialsDescription_t *description); +size_t rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_ScramCredentialInfo_t *rd_kafka_UserScramCredentialsDescription_scramcredentialinfo(const rd_kafka_UserScramCredentialsDescription_t *description, size_t idx); +const rd_kafka_UserScramCredentialsDescription_t **rd_kafka_DescribeUserScramCredentials_result_descriptions(const rd_kafka_DescribeUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_DescribeUserScramCredentials(rd_kafka_t *rk, const char **users, size_t user_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_UserScramCredentialAlteration_s rd_kafka_UserScramCredentialAlteration_t; +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialUpsertion_new(const char *username, rd_kafka_ScramMechanism_t mechanism, int32_t iterations, const unsigned char *password, size_t password_size, const unsigned char *salt, size_t salt_size); +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialDeletion_new(const char *username, rd_kafka_ScramMechanism_t mechanism); +void rd_kafka_UserScramCredentialAlteration_destroy(rd_kafka_UserScramCredentialAlteration_t *alteration); +void rd_kafka_UserScramCredentialAlteration_destroy_array(rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt); +typedef struct rd_kafka_AlterUserScramCredentials_result_response_s rd_kafka_AlterUserScramCredentials_result_response_t; +const char *rd_kafka_AlterUserScramCredentials_result_response_user(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_error_t *rd_kafka_AlterUserScramCredentials_result_response_error(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_AlterUserScramCredentials_result_response_t **rd_kafka_AlterUserScramCredentials_result_responses(const rd_kafka_AlterUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_AlterUserScramCredentials(rd_kafka_t *rk, rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t; +typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t; +const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres); +const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation); +typedef enum rd_kafka_AclPermissionType_t { + RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0, + RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1, + RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2, + RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3, + RD_KAFKA_ACL_PERMISSION_TYPE__CNT, +} rd_kafka_AclPermissionType_t; +const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type); +rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl); +rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl); +const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl); +void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding); +void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt); +const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp); +void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp); +void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t; +const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp); +const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response); +const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp); +void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr); +rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms); +rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms); +typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t; +rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt); +void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster); +rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster); +rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk); +const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey); +void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...); +void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors); +rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...); +rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp); +void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi); +rd_kafka_resp_err_t rd_kafka_mock_partition_push_leader_response(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition, int32_t leader_id, int32_t leader_epoch); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack); +rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion); +void rd_kafka_mock_start_request_tracking(rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_stop_request_tracking(rd_kafka_mock_cluster_t *mcluster); +typedef struct rd_kafka_mock_request_s rd_kafka_mock_request_t; +void rd_kafka_mock_request_destroy(rd_kafka_mock_request_t *mreq); +void rd_kafka_mock_request_destroy_array(rd_kafka_mock_request_t **mreqs, size_t mreq_cnt); +int32_t rd_kafka_mock_request_id(rd_kafka_mock_request_t *mreq); +int16_t rd_kafka_mock_request_api_key(rd_kafka_mock_request_t *mreq); +int64_t rd_kafka_mock_request_timestamp(rd_kafka_mock_request_t *mreq); +rd_kafka_mock_request_t **rd_kafka_mock_get_requests(rd_kafka_mock_cluster_t *mcluster, size_t *cntp); +void rd_kafka_mock_clear_requests(rd_kafka_mock_cluster_t *mcluster); +rd_kafka_resp_err_t rd_kafka_mock_telemetry_set_requested_metrics(rd_kafka_mock_cluster_t *mcluster, char **metrics, size_t metrics_cnt); +rd_kafka_resp_err_t rd_kafka_mock_telemetry_set_push_interval(rd_kafka_mock_cluster_t *mcluster, int64_t push_interval_ms); +'; diff --git a/src/RdKafka/FFI/Versions/2.6.0.php b/src/RdKafka/FFI/Versions/2.6.0.php new file mode 100644 index 00000000..98d88746 --- /dev/null +++ b/src/RdKafka/FFI/Versions/2.6.0.php @@ -0,0 +1,1087 @@ +librdkafka version + *Interpreted as hex MM.mm.rr.xx
:
E.g.: 0x000801ff
= 0.8.1
Unsupported compression type
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76; + +/** + * enum rd_kafka_resp_err_t + * @since 2.6.0 of librdkafka + */ +const RD_KAFKA_RESP_ERR_END_ALL = 119; + +/** + *Number of ops defined
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe + */ +const RD_KAFKA_ADMIN_OP__CNT = 23; + +/** + *Number of resource types defined
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE__CNT = 6; + +/** + * rdkafka.h, rdkafka_mock.h + * @since 2.6.0 of librdkafka + */ +const RD_KAFKA_CDEF = 'typedef long int ssize_t; +typedef struct _IO_FILE FILE; +typedef long int mode_t; +typedef signed int int16_t; +typedef unsigned int uint16_t; +typedef signed int int32_t; +typedef signed long int int64_t; +int rd_kafka_version(void); +const char *rd_kafka_version_str(void); +typedef enum rd_kafka_type_t { + RD_KAFKA_PRODUCER, + RD_KAFKA_CONSUMER, +} rd_kafka_type_t; +typedef enum rd_kafka_timestamp_type_t { + RD_KAFKA_TIMESTAMP_NOT_AVAILABLE, + RD_KAFKA_TIMESTAMP_CREATE_TIME, + RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME, +} rd_kafka_timestamp_type_t; +const char *rd_kafka_get_debug_contexts(void); +typedef struct rd_kafka_s rd_kafka_t; +typedef struct rd_kafka_topic_s rd_kafka_topic_t; +typedef struct rd_kafka_conf_s rd_kafka_conf_t; +typedef struct rd_kafka_topic_conf_s rd_kafka_topic_conf_t; +typedef struct rd_kafka_queue_s rd_kafka_queue_t; +typedef struct rd_kafka_op_s rd_kafka_event_t; +typedef struct rd_kafka_topic_result_s rd_kafka_topic_result_t; +typedef struct rd_kafka_consumer_group_metadata_s rd_kafka_consumer_group_metadata_t; +typedef struct rd_kafka_error_s { + unsigned int code; + char *errstr; + unsigned char fatal; + unsigned char retriable; + unsigned char txn_requires_abort; +} rd_kafka_error_t; +typedef struct rd_kafka_headers_s rd_kafka_headers_t; +typedef struct rd_kafka_group_result_s rd_kafka_group_result_t; +typedef struct rd_kafka_acl_result_s rd_kafka_acl_result_t; +typedef struct rd_kafka_Uuid_s rd_kafka_Uuid_t; +typedef struct rd_kafka_topic_partition_result_s rd_kafka_topic_partition_result_t; +typedef enum { + RD_KAFKA_RESP_ERR__BEGIN = (- 200), + RD_KAFKA_RESP_ERR__BAD_MSG = (- 199), + RD_KAFKA_RESP_ERR__BAD_COMPRESSION = (- 198), + RD_KAFKA_RESP_ERR__DESTROY = (- 197), + RD_KAFKA_RESP_ERR__FAIL = (- 196), + RD_KAFKA_RESP_ERR__TRANSPORT = (- 195), + RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = (- 194), + RD_KAFKA_RESP_ERR__RESOLVE = (- 193), + RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = (- 192), + RD_KAFKA_RESP_ERR__PARTITION_EOF = (- 191), + RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = (- 190), + RD_KAFKA_RESP_ERR__FS = (- 189), + RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = (- 188), + RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = (- 187), + RD_KAFKA_RESP_ERR__INVALID_ARG = (- 186), + RD_KAFKA_RESP_ERR__TIMED_OUT = (- 185), + RD_KAFKA_RESP_ERR__QUEUE_FULL = (- 184), + RD_KAFKA_RESP_ERR__ISR_INSUFF = (- 183), + RD_KAFKA_RESP_ERR__NODE_UPDATE = (- 182), + RD_KAFKA_RESP_ERR__SSL = (- 181), + RD_KAFKA_RESP_ERR__WAIT_COORD = (- 180), + RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = (- 179), + RD_KAFKA_RESP_ERR__IN_PROGRESS = (- 178), + RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = (- 177), + RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = (- 176), + RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = (- 175), + RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = (- 174), + RD_KAFKA_RESP_ERR__CONFLICT = (- 173), + RD_KAFKA_RESP_ERR__STATE = (- 172), + RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = (- 171), + RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = (- 170), + RD_KAFKA_RESP_ERR__AUTHENTICATION = (- 169), + RD_KAFKA_RESP_ERR__NO_OFFSET = (- 168), + RD_KAFKA_RESP_ERR__OUTDATED = (- 167), + RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = (- 166), + RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = (- 165), + RD_KAFKA_RESP_ERR__WAIT_CACHE = (- 164), + RD_KAFKA_RESP_ERR__INTR = (- 163), + RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = (- 162), + RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = (- 161), + RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = (- 160), + RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = (- 159), + RD_KAFKA_RESP_ERR__PARTIAL = (- 158), + RD_KAFKA_RESP_ERR__READ_ONLY = (- 157), + RD_KAFKA_RESP_ERR__NOENT = (- 156), + RD_KAFKA_RESP_ERR__UNDERFLOW = (- 155), + RD_KAFKA_RESP_ERR__INVALID_TYPE = (- 154), + RD_KAFKA_RESP_ERR__RETRY = (- 153), + RD_KAFKA_RESP_ERR__PURGE_QUEUE = (- 152), + RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = (- 151), + RD_KAFKA_RESP_ERR__FATAL = (- 150), + RD_KAFKA_RESP_ERR__INCONSISTENT = (- 149), + RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = (- 148), + RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = (- 147), + RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = (- 146), + RD_KAFKA_RESP_ERR__NOT_CONFIGURED = (- 145), + RD_KAFKA_RESP_ERR__FENCED = (- 144), + RD_KAFKA_RESP_ERR__APPLICATION = (- 143), + RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = (- 142), + RD_KAFKA_RESP_ERR__NOOP = (- 141), + RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = (- 140), + RD_KAFKA_RESP_ERR__LOG_TRUNCATION = (- 139), + RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD = (- 138), + RD_KAFKA_RESP_ERR__END = (- 100), + RD_KAFKA_RESP_ERR_UNKNOWN = (- 1), + RD_KAFKA_RESP_ERR_NO_ERROR = 0, + RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1, + RD_KAFKA_RESP_ERR_INVALID_MSG = 2, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3, + RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4, + RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5, + RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6, + RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7, + RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8, + RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9, + RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10, + RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11, + RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12, + RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13, + RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14, + RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15, + RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16, + RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17, + RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19, + RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20, + RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21, + RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22, + RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23, + RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24, + RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25, + RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26, + RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27, + RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28, + RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29, + RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30, + RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31, + RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32, + RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33, + RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34, + RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35, + RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36, + RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37, + RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38, + RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39, + RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40, + RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41, + RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42, + RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43, + RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44, + RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45, + RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47, + RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48, + RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49, + RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50, + RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51, + RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52, + RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53, + RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54, + RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55, + RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56, + RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57, + RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58, + RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59, + RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65, + RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66, + RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67, + RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68, + RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69, + RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70, + RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71, + RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72, + RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73, + RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74, + RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75, + RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76, + RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77, + RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78, + RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79, + RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80, + RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81, + RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82, + RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83, + RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84, + RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85, + RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86, + RD_KAFKA_RESP_ERR_INVALID_RECORD = 87, + RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88, + RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89, + RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90, + RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91, + RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92, + RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93, + RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94, + RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95, + RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96, + RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID = 100, + RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH = 110, + RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID = 111, + RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR = 112, + RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH = 113, + RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID = 117, + RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE = 118, + RD_KAFKA_RESP_ERR_END_ALL, +} rd_kafka_resp_err_t; +struct rd_kafka_err_desc { + rd_kafka_resp_err_t code; + char *name; + char *desc; +}; +void rd_kafka_get_err_descs(const struct rd_kafka_err_desc **errdescs, size_t *cntp); +const char *rd_kafka_err2str(rd_kafka_resp_err_t err); +const char *rd_kafka_err2name(rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_last_error(void); +rd_kafka_resp_err_t rd_kafka_errno2err(int errnox); +int rd_kafka_errno(void); +rd_kafka_resp_err_t rd_kafka_fatal_error(rd_kafka_t *rk, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_test_fatal_error(rd_kafka_t *rk, rd_kafka_resp_err_t err, const char *reason); +rd_kafka_resp_err_t rd_kafka_error_code(const rd_kafka_error_t *error); +const char *rd_kafka_error_name(const rd_kafka_error_t *error); +const char *rd_kafka_error_string(const rd_kafka_error_t *error); +int rd_kafka_error_is_fatal(const rd_kafka_error_t *error); +int rd_kafka_error_is_retriable(const rd_kafka_error_t *error); +int rd_kafka_error_txn_requires_abort(const rd_kafka_error_t *error); +void rd_kafka_error_destroy(rd_kafka_error_t *error); +rd_kafka_error_t *rd_kafka_error_new(rd_kafka_resp_err_t code, const char *fmt, ...); +typedef struct rd_kafka_topic_partition_s { + char *topic; + int32_t partition; + int64_t offset; + void *metadata; + size_t metadata_size; + void *opaque; + rd_kafka_resp_err_t err; + void *_private; +} rd_kafka_topic_partition_t; +void rd_kafka_topic_partition_destroy(rd_kafka_topic_partition_t *rktpar); +void rd_kafka_topic_partition_set_leader_epoch(rd_kafka_topic_partition_t *rktpar, int32_t leader_epoch); +int32_t rd_kafka_topic_partition_get_leader_epoch(const rd_kafka_topic_partition_t *rktpar); +typedef struct rd_kafka_topic_partition_list_s { + int cnt; + int size; + rd_kafka_topic_partition_t *elems; +} rd_kafka_topic_partition_list_t; +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_new(int size); +void rd_kafka_topic_partition_list_destroy(rd_kafka_topic_partition_list_t *rkparlist); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_add(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_add_range(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t start, int32_t stop); +int rd_kafka_topic_partition_list_del(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +int rd_kafka_topic_partition_list_del_by_idx(rd_kafka_topic_partition_list_t *rktparlist, int idx); +rd_kafka_topic_partition_list_t *rd_kafka_topic_partition_list_copy(const rd_kafka_topic_partition_list_t *src); +rd_kafka_resp_err_t rd_kafka_topic_partition_list_set_offset(rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition, int64_t offset); +rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(const rd_kafka_topic_partition_list_t *rktparlist, const char *topic, int32_t partition); +void rd_kafka_topic_partition_list_sort(rd_kafka_topic_partition_list_t *rktparlist, int (*cmp)(const void *a, const void *b, void *cmp_opaque), void *cmp_opaque); +typedef enum rd_kafka_vtype_t { + RD_KAFKA_VTYPE_END, + RD_KAFKA_VTYPE_TOPIC, + RD_KAFKA_VTYPE_RKT, + RD_KAFKA_VTYPE_PARTITION, + RD_KAFKA_VTYPE_VALUE, + RD_KAFKA_VTYPE_KEY, + RD_KAFKA_VTYPE_OPAQUE, + RD_KAFKA_VTYPE_MSGFLAGS, + RD_KAFKA_VTYPE_TIMESTAMP, + RD_KAFKA_VTYPE_HEADER, + RD_KAFKA_VTYPE_HEADERS, +} rd_kafka_vtype_t; +typedef struct rd_kafka_vu_s { + rd_kafka_vtype_t vtype; + union { + char *cstr; + rd_kafka_topic_t *rkt; + int i; + int32_t i32; + int64_t i64; + struct { + void *ptr; + size_t size; + } mem; + struct { + char *name; + void *val; + ssize_t size; + } header; + rd_kafka_headers_t *headers; + void *ptr; + char _pad[64]; + } u; +} rd_kafka_vu_t; +rd_kafka_headers_t *rd_kafka_headers_new(size_t initial_count); +void rd_kafka_headers_destroy(rd_kafka_headers_t *hdrs); +rd_kafka_headers_t *rd_kafka_headers_copy(const rd_kafka_headers_t *src); +rd_kafka_resp_err_t rd_kafka_header_add(rd_kafka_headers_t *hdrs, const char *name, ssize_t name_size, const void *value, ssize_t value_size); +rd_kafka_resp_err_t rd_kafka_header_remove(rd_kafka_headers_t *hdrs, const char *name); +rd_kafka_resp_err_t rd_kafka_header_get_last(const rd_kafka_headers_t *hdrs, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get(const rd_kafka_headers_t *hdrs, size_t idx, const char *name, const void **valuep, size_t *sizep); +rd_kafka_resp_err_t rd_kafka_header_get_all(const rd_kafka_headers_t *hdrs, size_t idx, const char **namep, const void **valuep, size_t *sizep); +typedef struct rd_kafka_message_s { + rd_kafka_resp_err_t err; + rd_kafka_topic_t *rkt; + int32_t partition; + void *payload; + size_t len; + void *key; + size_t key_len; + int64_t offset; + void *_private; +} rd_kafka_message_t; +void rd_kafka_message_destroy(rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_errstr(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_message_produce_errstr(const rd_kafka_message_t *rkmessage); +int64_t rd_kafka_message_timestamp(const rd_kafka_message_t *rkmessage, rd_kafka_timestamp_type_t *tstype); +int64_t rd_kafka_message_latency(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_broker_id(const rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_message_headers(const rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +rd_kafka_resp_err_t rd_kafka_message_detach_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t **hdrsp); +void rd_kafka_message_set_headers(rd_kafka_message_t *rkmessage, rd_kafka_headers_t *hdrs); +size_t rd_kafka_header_cnt(const rd_kafka_headers_t *hdrs); +typedef enum { + RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0, + RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1, + RD_KAFKA_MSG_STATUS_PERSISTED = 2, +} rd_kafka_msg_status_t; +rd_kafka_msg_status_t rd_kafka_message_status(const rd_kafka_message_t *rkmessage); +int32_t rd_kafka_message_leader_epoch(const rd_kafka_message_t *rkmessage); +const char *rd_kafka_Uuid_base64str(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_least_significant_bits(const rd_kafka_Uuid_t *uuid); +int64_t rd_kafka_Uuid_most_significant_bits(const rd_kafka_Uuid_t *uuid); +rd_kafka_Uuid_t *rd_kafka_Uuid_new(int64_t most_significant_bits, int64_t least_significant_bits); +rd_kafka_Uuid_t *rd_kafka_Uuid_copy(const rd_kafka_Uuid_t *uuid); +void rd_kafka_Uuid_destroy(rd_kafka_Uuid_t *uuid); +typedef enum { + RD_KAFKA_CONF_UNKNOWN = (- 2), + RD_KAFKA_CONF_INVALID = (- 1), + RD_KAFKA_CONF_OK = 0, +} rd_kafka_conf_res_t; +rd_kafka_conf_t *rd_kafka_conf_new(void); +void rd_kafka_conf_destroy(rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup(const rd_kafka_conf_t *conf); +rd_kafka_conf_t *rd_kafka_conf_dup_filter(const rd_kafka_conf_t *conf, size_t filter_cnt, const char **filter); +const rd_kafka_conf_t *rd_kafka_conf(rd_kafka_t *rk); +rd_kafka_conf_res_t rd_kafka_conf_set(rd_kafka_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_events(rd_kafka_conf_t *conf, int events); +void rd_kafka_conf_set_background_event_cb(rd_kafka_conf_t *conf, void (*event_cb)(rd_kafka_t *rk, rd_kafka_event_t *rkev, void *opaque)); +void rd_kafka_conf_set_dr_cb(rd_kafka_conf_t *conf, void (*dr_cb)(rd_kafka_t *rk, void *payload, size_t len, rd_kafka_resp_err_t err, void *opaque, void *msg_opaque)); +void rd_kafka_conf_set_dr_msg_cb(rd_kafka_conf_t *conf, void (*dr_msg_cb)(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_consume_cb(rd_kafka_conf_t *conf, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *opaque)); +void rd_kafka_conf_set_rebalance_cb(rd_kafka_conf_t *conf, void (*rebalance_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *partitions, void *opaque)); +void rd_kafka_conf_set_offset_commit_cb(rd_kafka_conf_t *conf, void (*offset_commit_cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *opaque)); +void rd_kafka_conf_set_error_cb(rd_kafka_conf_t *conf, void (*error_cb)(rd_kafka_t *rk, int err, const char *reason, void *opaque)); +void rd_kafka_conf_set_throttle_cb(rd_kafka_conf_t *conf, void (*throttle_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int throttle_time_ms, void *opaque)); +void rd_kafka_conf_set_log_cb(rd_kafka_conf_t *conf, void (*log_cb)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_conf_set_stats_cb(rd_kafka_conf_t *conf, int (*stats_cb)(rd_kafka_t *rk, char *json, size_t json_len, void *opaque)); +void rd_kafka_conf_set_oauthbearer_token_refresh_cb(rd_kafka_conf_t *conf, void (*oauthbearer_token_refresh_cb)(rd_kafka_t *rk, const char *oauthbearer_config, void *opaque)); +void rd_kafka_conf_enable_sasl_queue(rd_kafka_conf_t *conf, int enable); +void rd_kafka_conf_set_socket_cb(rd_kafka_conf_t *conf, int (*socket_cb)(int domain, int type, int protocol, void *opaque)); +void rd_kafka_conf_set_connect_cb(rd_kafka_conf_t *conf, int (*connect_cb)(int sockfd, const struct sockaddr *addr, int addrlen, const char *id, void *opaque)); +void rd_kafka_conf_set_closesocket_cb(rd_kafka_conf_t *conf, int (*closesocket_cb)(int sockfd, void *opaque)); +struct addrinfo; +void rd_kafka_conf_set_resolve_cb(rd_kafka_conf_t *conf, int (*resolve_cb)(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, void *opaque)); +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert_verify_cb(rd_kafka_conf_t *conf, int (*ssl_cert_verify_cb)(rd_kafka_t *rk, const char *broker_name, int32_t broker_id, int *x509_error, int depth, const char *buf, size_t size, char *errstr, size_t errstr_size, void *opaque)); +typedef enum rd_kafka_cert_type_t { + RD_KAFKA_CERT_PUBLIC_KEY, + RD_KAFKA_CERT_PRIVATE_KEY, + RD_KAFKA_CERT_CA, + RD_KAFKA_CERT__CNT, +} rd_kafka_cert_type_t; +typedef enum rd_kafka_cert_enc_t { + RD_KAFKA_CERT_ENC_PKCS12, + RD_KAFKA_CERT_ENC_DER, + RD_KAFKA_CERT_ENC_PEM, + RD_KAFKA_CERT_ENC__CNT, +} rd_kafka_cert_enc_t; +rd_kafka_conf_res_t rd_kafka_conf_set_ssl_cert(rd_kafka_conf_t *conf, rd_kafka_cert_type_t cert_type, rd_kafka_cert_enc_t cert_enc, const void *buffer, size_t size, char *errstr, size_t errstr_size); +void rd_kafka_conf_set_engine_callback_data(rd_kafka_conf_t *conf, void *callback_data); +void rd_kafka_conf_set_opaque(rd_kafka_conf_t *conf, void *opaque); +void *rd_kafka_opaque(const rd_kafka_t *rk); +void rd_kafka_conf_set_default_topic_conf(rd_kafka_conf_t *conf, rd_kafka_topic_conf_t *tconf); +rd_kafka_topic_conf_t *rd_kafka_conf_get_default_topic_conf(rd_kafka_conf_t *conf); +rd_kafka_conf_res_t rd_kafka_conf_get(const rd_kafka_conf_t *conf, const char *name, char *dest, size_t *dest_size); +rd_kafka_conf_res_t rd_kafka_topic_conf_get(const rd_kafka_topic_conf_t *conf, const char *name, char *dest, size_t *dest_size); +const char **rd_kafka_conf_dump(rd_kafka_conf_t *conf, size_t *cntp); +const char **rd_kafka_topic_conf_dump(rd_kafka_topic_conf_t *conf, size_t *cntp); +void rd_kafka_conf_dump_free(const char **arr, size_t cnt); +void rd_kafka_conf_properties_show(FILE *fp); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_new(void); +rd_kafka_topic_conf_t *rd_kafka_topic_conf_dup(const rd_kafka_topic_conf_t *conf); +rd_kafka_topic_conf_t *rd_kafka_default_topic_conf_dup(rd_kafka_t *rk); +void rd_kafka_topic_conf_destroy(rd_kafka_topic_conf_t *topic_conf); +rd_kafka_conf_res_t rd_kafka_topic_conf_set(rd_kafka_topic_conf_t *conf, const char *name, const char *value, char *errstr, size_t errstr_size); +void rd_kafka_topic_conf_set_opaque(rd_kafka_topic_conf_t *conf, void *rkt_opaque); +void rd_kafka_topic_conf_set_partitioner_cb(rd_kafka_topic_conf_t *topic_conf, int32_t (*partitioner)(const rd_kafka_topic_t *rkt, const void *keydata, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque)); +void rd_kafka_topic_conf_set_msg_order_cmp(rd_kafka_topic_conf_t *topic_conf, int (*msg_order_cmp)(const rd_kafka_message_t *a, const rd_kafka_message_t *b)); +int rd_kafka_topic_partition_available(const rd_kafka_topic_t *rkt, int32_t partition); +int32_t rd_kafka_msg_partitioner_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_consistent_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_murmur2_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +int32_t rd_kafka_msg_partitioner_fnv1a_random(const rd_kafka_topic_t *rkt, const void *key, size_t keylen, int32_t partition_cnt, void *rkt_opaque, void *msg_opaque); +rd_kafka_t *rd_kafka_new(rd_kafka_type_t type, rd_kafka_conf_t *conf, char *errstr, size_t errstr_size); +void rd_kafka_destroy(rd_kafka_t *rk); +void rd_kafka_destroy_flags(rd_kafka_t *rk, int flags); +const char *rd_kafka_name(const rd_kafka_t *rk); +rd_kafka_type_t rd_kafka_type(const rd_kafka_t *rk); +char *rd_kafka_memberid(const rd_kafka_t *rk); +char *rd_kafka_clusterid(rd_kafka_t *rk, int timeout_ms); +int32_t rd_kafka_controllerid(rd_kafka_t *rk, int timeout_ms); +rd_kafka_topic_t *rd_kafka_topic_new(rd_kafka_t *rk, const char *topic, rd_kafka_topic_conf_t *conf); +void rd_kafka_topic_destroy(rd_kafka_topic_t *rkt); +const char *rd_kafka_topic_name(const rd_kafka_topic_t *rkt); +void *rd_kafka_topic_opaque(const rd_kafka_topic_t *rkt); +int rd_kafka_poll(rd_kafka_t *rk, int timeout_ms); +void rd_kafka_yield(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_pause_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_resume_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_query_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_get_watermark_offsets(rd_kafka_t *rk, const char *topic, int32_t partition, int64_t *low, int64_t *high); +rd_kafka_resp_err_t rd_kafka_offsets_for_times(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets, int timeout_ms); +void *rd_kafka_mem_calloc(rd_kafka_t *rk, size_t num, size_t size); +void *rd_kafka_mem_malloc(rd_kafka_t *rk, size_t size); +void rd_kafka_mem_free(rd_kafka_t *rk, void *ptr); +rd_kafka_queue_t *rd_kafka_queue_new(rd_kafka_t *rk); +void rd_kafka_queue_destroy(rd_kafka_queue_t *rkqu); +rd_kafka_queue_t *rd_kafka_queue_get_main(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_sasl(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_background_callbacks_enable(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_sasl_set_credentials(rd_kafka_t *rk, const char *username, const char *password); +rd_kafka_queue_t *rd_kafka_queue_get_consumer(rd_kafka_t *rk); +rd_kafka_queue_t *rd_kafka_queue_get_partition(rd_kafka_t *rk, const char *topic, int32_t partition); +rd_kafka_queue_t *rd_kafka_queue_get_background(rd_kafka_t *rk); +void rd_kafka_queue_forward(rd_kafka_queue_t *src, rd_kafka_queue_t *dst); +rd_kafka_resp_err_t rd_kafka_set_log_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +size_t rd_kafka_queue_length(rd_kafka_queue_t *rkqu); +void rd_kafka_queue_io_event_enable(rd_kafka_queue_t *rkqu, int fd, const void *payload, size_t size); +void rd_kafka_queue_cb_event_enable(rd_kafka_queue_t *rkqu, void (*event_cb)(rd_kafka_t *rk, void *qev_opaque), void *qev_opaque); +void rd_kafka_queue_yield(rd_kafka_queue_t *rkqu); +int rd_kafka_consume_start(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +int rd_kafka_consume_start_queue(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, rd_kafka_queue_t *rkqu); +int rd_kafka_consume_stop(rd_kafka_topic_t *rkt, int32_t partition); +rd_kafka_resp_err_t rd_kafka_seek(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset, int timeout_ms); +rd_kafka_error_t *rd_kafka_seek_partitions(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_message_t *rd_kafka_consume(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms); +ssize_t rd_kafka_consume_batch(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback(rd_kafka_topic_t *rkt, int32_t partition, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_message_t *rd_kafka_consume_queue(rd_kafka_queue_t *rkqu, int timeout_ms); +ssize_t rd_kafka_consume_batch_queue(rd_kafka_queue_t *rkqu, int timeout_ms, rd_kafka_message_t **rkmessages, size_t rkmessages_size); +int rd_kafka_consume_callback_queue(rd_kafka_queue_t *rkqu, int timeout_ms, void (*consume_cb)(rd_kafka_message_t *rkmessage, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_offset_store(rd_kafka_topic_t *rkt, int32_t partition, int64_t offset); +rd_kafka_resp_err_t rd_kafka_offsets_store(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *offsets); +rd_kafka_error_t *rd_kafka_offset_store_message(rd_kafka_message_t *rkmessage); +rd_kafka_resp_err_t rd_kafka_subscribe(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *topics); +rd_kafka_resp_err_t rd_kafka_unsubscribe(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_subscription(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **topics); +rd_kafka_message_t *rd_kafka_consumer_poll(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_consumer_close(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_consumer_close_queue(rd_kafka_t *rk, rd_kafka_queue_t *rkqu); +int rd_kafka_consumer_closed(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_incremental_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_error_t *rd_kafka_incremental_unassign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +const char *rd_kafka_rebalance_protocol(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_assign(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *partitions); +rd_kafka_resp_err_t rd_kafka_assignment(rd_kafka_t *rk, rd_kafka_topic_partition_list_t **partitions); +int rd_kafka_assignment_lost(rd_kafka_t *rk); +rd_kafka_resp_err_t rd_kafka_commit(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, int async); +rd_kafka_resp_err_t rd_kafka_commit_message(rd_kafka_t *rk, const rd_kafka_message_t *rkmessage, int async); +rd_kafka_resp_err_t rd_kafka_commit_queue(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_queue_t *rkqu, void (*cb)(rd_kafka_t *rk, rd_kafka_resp_err_t err, rd_kafka_topic_partition_list_t *offsets, void *commit_opaque), void *commit_opaque); +rd_kafka_resp_err_t rd_kafka_committed(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_position(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *partitions); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata(rd_kafka_t *rk); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new(const char *group_id); +rd_kafka_consumer_group_metadata_t *rd_kafka_consumer_group_metadata_new_with_genid(const char *group_id, int32_t generation_id, const char *member_id, const char *group_instance_id); +const char *rd_kafka_consumer_group_metadata_member_id(const rd_kafka_consumer_group_metadata_t *group_metadata); +void rd_kafka_consumer_group_metadata_destroy(rd_kafka_consumer_group_metadata_t *); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_write(const rd_kafka_consumer_group_metadata_t *cgmd, void **bufferp, size_t *sizep); +rd_kafka_error_t *rd_kafka_consumer_group_metadata_read(rd_kafka_consumer_group_metadata_t **cgmdp, const void *buffer, size_t size); +int rd_kafka_produce(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, void *payload, size_t len, const void *key, size_t keylen, void *msg_opaque); +rd_kafka_resp_err_t rd_kafka_producev(rd_kafka_t *rk, ...); +rd_kafka_error_t *rd_kafka_produceva(rd_kafka_t *rk, const rd_kafka_vu_t *vus, size_t cnt); +int rd_kafka_produce_batch(rd_kafka_topic_t *rkt, int32_t partition, int msgflags, rd_kafka_message_t *rkmessages, int message_cnt); +rd_kafka_resp_err_t rd_kafka_flush(rd_kafka_t *rk, int timeout_ms); +rd_kafka_resp_err_t rd_kafka_purge(rd_kafka_t *rk, int purge_flags); +typedef struct rd_kafka_metadata_broker { + int32_t id; + char *host; + int port; +} rd_kafka_metadata_broker_t; +typedef struct rd_kafka_metadata_partition { + int32_t id; + rd_kafka_resp_err_t err; + int32_t leader; + int replica_cnt; + int32_t *replicas; + int isr_cnt; + int32_t *isrs; +} rd_kafka_metadata_partition_t; +typedef struct rd_kafka_metadata_topic { + char *topic; + int partition_cnt; + struct rd_kafka_metadata_partition *partitions; + rd_kafka_resp_err_t err; +} rd_kafka_metadata_topic_t; +typedef struct rd_kafka_metadata { + int broker_cnt; + struct rd_kafka_metadata_broker *brokers; + int topic_cnt; + struct rd_kafka_metadata_topic *topics; + int32_t orig_broker_id; + char *orig_broker_name; +} rd_kafka_metadata_t; +rd_kafka_resp_err_t rd_kafka_metadata(rd_kafka_t *rk, int all_topics, rd_kafka_topic_t *only_rkt, const struct rd_kafka_metadata **metadatap, int timeout_ms); +void rd_kafka_metadata_destroy(const struct rd_kafka_metadata *metadata); +typedef struct rd_kafka_Node_s rd_kafka_Node_t; +int rd_kafka_Node_id(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_host(const rd_kafka_Node_t *node); +uint16_t rd_kafka_Node_port(const rd_kafka_Node_t *node); +const char *rd_kafka_Node_rack(const rd_kafka_Node_t *node); +struct rd_kafka_group_member_info { + char *member_id; + char *client_id; + char *client_host; + void *member_metadata; + int member_metadata_size; + void *member_assignment; + int member_assignment_size; +}; +typedef enum { + RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0, + RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1, + RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2, + RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3, + RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4, + RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5, + RD_KAFKA_CONSUMER_GROUP_STATE__CNT, +} rd_kafka_consumer_group_state_t; +typedef enum { + RD_KAFKA_CONSUMER_GROUP_TYPE_UNKNOWN = 0, + RD_KAFKA_CONSUMER_GROUP_TYPE_CONSUMER = 1, + RD_KAFKA_CONSUMER_GROUP_TYPE_CLASSIC = 2, + RD_KAFKA_CONSUMER_GROUP_TYPE__CNT, +} rd_kafka_consumer_group_type_t; +struct rd_kafka_group_info { + struct rd_kafka_metadata_broker broker; + char *group; + rd_kafka_resp_err_t err; + char *state; + char *protocol_type; + char *protocol; + struct rd_kafka_group_member_info *members; + int member_cnt; +}; +struct rd_kafka_group_list { + struct rd_kafka_group_info *groups; + int group_cnt; +}; +rd_kafka_resp_err_t rd_kafka_list_groups(rd_kafka_t *rk, const char *group, const struct rd_kafka_group_list **grplistp, int timeout_ms); +const char *rd_kafka_consumer_group_state_name(rd_kafka_consumer_group_state_t state); +rd_kafka_consumer_group_state_t rd_kafka_consumer_group_state_code(const char *name); +const char *rd_kafka_consumer_group_type_name(rd_kafka_consumer_group_type_t type); +rd_kafka_consumer_group_type_t rd_kafka_consumer_group_type_code(const char *name); +void rd_kafka_group_list_destroy(const struct rd_kafka_group_list *grplist); +int rd_kafka_brokers_add(rd_kafka_t *rk, const char *brokerlist); +void rd_kafka_set_logger(rd_kafka_t *rk, void (*func)(const rd_kafka_t *rk, int level, const char *fac, const char *buf)); +void rd_kafka_set_log_level(rd_kafka_t *rk, int level); +void rd_kafka_log_print(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +void rd_kafka_log_syslog(const rd_kafka_t *rk, int level, const char *fac, const char *buf); +int rd_kafka_outq_len(rd_kafka_t *rk); +void rd_kafka_dump(FILE *fp, rd_kafka_t *rk); +int rd_kafka_thread_cnt(void); +typedef enum rd_kafka_thread_type_t { + RD_KAFKA_THREAD_MAIN, + RD_KAFKA_THREAD_BACKGROUND, + RD_KAFKA_THREAD_BROKER, +} rd_kafka_thread_type_t; +int rd_kafka_wait_destroyed(int timeout_ms); +int rd_kafka_unittest(void); +rd_kafka_resp_err_t rd_kafka_poll_set_consumer(rd_kafka_t *rk); +typedef int rd_kafka_event_type_t; +rd_kafka_event_type_t rd_kafka_event_type(const rd_kafka_event_t *rkev); +const char *rd_kafka_event_name(const rd_kafka_event_t *rkev); +void rd_kafka_event_destroy(rd_kafka_event_t *rkev); +const rd_kafka_message_t *rd_kafka_event_message_next(rd_kafka_event_t *rkev); +size_t rd_kafka_event_message_array(rd_kafka_event_t *rkev, const rd_kafka_message_t **rkmessages, size_t size); +size_t rd_kafka_event_message_count(rd_kafka_event_t *rkev); +const char *rd_kafka_event_config_string(rd_kafka_event_t *rkev); +rd_kafka_resp_err_t rd_kafka_event_error(rd_kafka_event_t *rkev); +const char *rd_kafka_event_error_string(rd_kafka_event_t *rkev); +int rd_kafka_event_error_is_fatal(rd_kafka_event_t *rkev); +void *rd_kafka_event_opaque(rd_kafka_event_t *rkev); +int rd_kafka_event_log(rd_kafka_event_t *rkev, const char **fac, const char **str, int *level); +int rd_kafka_event_debug_contexts(rd_kafka_event_t *rkev, char *dst, size_t dstsize); +const char *rd_kafka_event_stats(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_list_t *rd_kafka_event_topic_partition_list(rd_kafka_event_t *rkev); +rd_kafka_topic_partition_t *rd_kafka_event_topic_partition(rd_kafka_event_t *rkev); +typedef rd_kafka_event_t rd_kafka_CreateTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteTopics_result_t; +typedef rd_kafka_event_t rd_kafka_CreateAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeAcls_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteAcls_result_t; +typedef rd_kafka_event_t rd_kafka_CreatePartitions_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_IncrementalAlterConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConfigs_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteRecords_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeConsumerGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteGroups_result_t; +typedef rd_kafka_event_t rd_kafka_DeleteConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_AlterConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_ListConsumerGroupOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeTopics_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeCluster_result_t; +typedef rd_kafka_event_t rd_kafka_DescribeUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_AlterUserScramCredentials_result_t; +typedef rd_kafka_event_t rd_kafka_ListOffsets_result_t; +typedef rd_kafka_event_t rd_kafka_ElectLeaders_result_t; +const rd_kafka_CreateTopics_result_t *rd_kafka_event_CreateTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteTopics_result_t *rd_kafka_event_DeleteTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_CreatePartitions_result_t *rd_kafka_event_CreatePartitions_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConfigs_result_t *rd_kafka_event_AlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_IncrementalAlterConfigs_result_t *rd_kafka_event_IncrementalAlterConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConfigs_result_t *rd_kafka_event_DescribeConfigs_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteRecords_result_t *rd_kafka_event_DeleteRecords_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroups_result_t *rd_kafka_event_ListConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeConsumerGroups_result_t *rd_kafka_event_DescribeConsumerGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeTopics_result_t *rd_kafka_event_DescribeTopics_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeCluster_result_t *rd_kafka_event_DescribeCluster_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteGroups_result_t *rd_kafka_event_DeleteGroups_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteConsumerGroupOffsets_result_t *rd_kafka_event_DeleteConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_CreateAcls_result_t *rd_kafka_event_CreateAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeAcls_result_t *rd_kafka_event_DescribeAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_DeleteAcls_result_t *rd_kafka_event_DeleteAcls_result(rd_kafka_event_t *rkev); +const rd_kafka_ListConsumerGroupOffsets_result_t *rd_kafka_event_ListConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterConsumerGroupOffsets_result_t *rd_kafka_event_AlterConsumerGroupOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_ListOffsets_result_t *rd_kafka_event_ListOffsets_result(rd_kafka_event_t *rkev); +const rd_kafka_DescribeUserScramCredentials_result_t *rd_kafka_event_DescribeUserScramCredentials_result(rd_kafka_event_t *rkev); +const rd_kafka_AlterUserScramCredentials_result_t *rd_kafka_event_AlterUserScramCredentials_result(rd_kafka_event_t *rkev); +const rd_kafka_ElectLeaders_result_t *rd_kafka_event_ElectLeaders_result(rd_kafka_event_t *rkev); +rd_kafka_event_t *rd_kafka_queue_poll(rd_kafka_queue_t *rkqu, int timeout_ms); +int rd_kafka_queue_poll_callback(rd_kafka_queue_t *rkqu, int timeout_ms); +typedef rd_kafka_resp_err_t (rd_kafka_plugin_f_conf_init_t)(rd_kafka_conf_t *conf, void **plug_opaquep, char *errstr, size_t errstr_size); +typedef rd_kafka_conf_res_t (rd_kafka_interceptor_f_on_conf_set_t)(rd_kafka_conf_t *conf, const char *name, const char *val, char *errstr, size_t errstr_size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_dup_t)(rd_kafka_conf_t *new_conf, const rd_kafka_conf_t *old_conf, size_t filter_cnt, const char **filter, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_conf_destroy_t)(void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_new_t)(rd_kafka_t *rk, const rd_kafka_conf_t *conf, void *ic_opaque, char *errstr, size_t errstr_size); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_destroy_t)(rd_kafka_t *rk, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_send_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_acknowledgement_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_consume_t)(rd_kafka_t *rk, rd_kafka_message_t *rkmessage, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_commit_t)(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_request_sent_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_response_received_t)(rd_kafka_t *rk, int sockfd, const char *brokername, int32_t brokerid, int16_t ApiKey, int16_t ApiVersion, int32_t CorrId, size_t size, int64_t rtt, rd_kafka_resp_err_t err, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_start_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_thread_exit_t)(rd_kafka_t *rk, rd_kafka_thread_type_t thread_type, const char *thread_name, void *ic_opaque); +typedef rd_kafka_resp_err_t (rd_kafka_interceptor_f_on_broker_state_change_t)(rd_kafka_t *rk, int32_t broker_id, const char *secproto, const char *name, int port, const char *state, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_set(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_set_t *on_conf_set, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_dup(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_dup_t *on_conf_dup, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_conf_destroy(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_conf_destroy_t *on_conf_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_conf_interceptor_add_on_new(rd_kafka_conf_t *conf, const char *ic_name, rd_kafka_interceptor_f_on_new_t *on_new, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_destroy(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_destroy_t *on_destroy, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_send(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_send_t *on_send, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_acknowledgement(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_acknowledgement_t *on_acknowledgement, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_consume(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_consume_t *on_consume, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_commit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_commit_t *on_commit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_request_sent(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_request_sent_t *on_request_sent, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_response_received(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_response_received_t *on_response_received, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_start(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_start_t *on_thread_start, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_thread_exit(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_thread_exit_t *on_thread_exit, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_interceptor_add_on_broker_state_change(rd_kafka_t *rk, const char *ic_name, rd_kafka_interceptor_f_on_broker_state_change_t *on_broker_state_change, void *ic_opaque); +rd_kafka_resp_err_t rd_kafka_topic_result_error(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_error_string(const rd_kafka_topic_result_t *topicres); +const char *rd_kafka_topic_result_name(const rd_kafka_topic_result_t *topicres); +const rd_kafka_error_t *rd_kafka_group_result_error(const rd_kafka_group_result_t *groupres); +const char *rd_kafka_group_result_name(const rd_kafka_group_result_t *groupres); +const rd_kafka_topic_partition_list_t *rd_kafka_group_result_partitions(const rd_kafka_group_result_t *groupres); +const rd_kafka_topic_partition_t *rd_kafka_topic_partition_result_partition(const rd_kafka_topic_partition_result_t *partition_result); +const rd_kafka_error_t *rd_kafka_topic_partition_result_error(const rd_kafka_topic_partition_result_t *partition_result); +typedef enum rd_kafka_admin_op_t { + RD_KAFKA_ADMIN_OP_ANY = 0, + RD_KAFKA_ADMIN_OP_CREATETOPICS, + RD_KAFKA_ADMIN_OP_DELETETOPICS, + RD_KAFKA_ADMIN_OP_CREATEPARTITIONS, + RD_KAFKA_ADMIN_OP_ALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS, + RD_KAFKA_ADMIN_OP_DELETERECORDS, + RD_KAFKA_ADMIN_OP_DELETEGROUPS, + RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_CREATEACLS, + RD_KAFKA_ADMIN_OP_DESCRIBEACLS, + RD_KAFKA_ADMIN_OP_DELETEACLS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS, + RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS, + RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS, + RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS, + RD_KAFKA_ADMIN_OP_DESCRIBETOPICS, + RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER, + RD_KAFKA_ADMIN_OP_LISTOFFSETS, + RD_KAFKA_ADMIN_OP_ELECTLEADERS, + RD_KAFKA_ADMIN_OP__CNT, +} rd_kafka_admin_op_t; +typedef struct rd_kafka_AdminOptions_s rd_kafka_AdminOptions_t; +typedef enum rd_kafka_IsolationLevel_t { + RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0, + RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1, +} rd_kafka_IsolationLevel_t; +rd_kafka_AdminOptions_t *rd_kafka_AdminOptions_new(rd_kafka_t *rk, rd_kafka_admin_op_t for_api); +void rd_kafka_AdminOptions_destroy(rd_kafka_AdminOptions_t *options); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_request_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_operation_timeout(rd_kafka_AdminOptions_t *options, int timeout_ms, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_validate_only(rd_kafka_AdminOptions_t *options, int true_or_false, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_AdminOptions_set_broker(rd_kafka_AdminOptions_t *options, int32_t broker_id, char *errstr, size_t errstr_size); +rd_kafka_error_t *rd_kafka_AdminOptions_set_require_stable_offsets(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_include_authorized_operations(rd_kafka_AdminOptions_t *options, int true_or_false); +rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_states(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_state_t *consumer_group_states, size_t consumer_group_states_cnt); +rd_kafka_error_t *rd_kafka_AdminOptions_set_match_consumer_group_types(rd_kafka_AdminOptions_t *options, const rd_kafka_consumer_group_type_t *consumer_group_types, size_t consumer_group_types_cnt); +rd_kafka_error_t *rd_kafka_AdminOptions_set_isolation_level(rd_kafka_AdminOptions_t *options, rd_kafka_IsolationLevel_t value); +void rd_kafka_AdminOptions_set_opaque(rd_kafka_AdminOptions_t *options, void *ev_opaque); +typedef enum rd_kafka_AclOperation_t { + RD_KAFKA_ACL_OPERATION_UNKNOWN = 0, + RD_KAFKA_ACL_OPERATION_ANY = 1, + RD_KAFKA_ACL_OPERATION_ALL = 2, + RD_KAFKA_ACL_OPERATION_READ = 3, + RD_KAFKA_ACL_OPERATION_WRITE = 4, + RD_KAFKA_ACL_OPERATION_CREATE = 5, + RD_KAFKA_ACL_OPERATION_DELETE = 6, + RD_KAFKA_ACL_OPERATION_ALTER = 7, + RD_KAFKA_ACL_OPERATION_DESCRIBE = 8, + RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9, + RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10, + RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11, + RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12, + RD_KAFKA_ACL_OPERATION__CNT, +} rd_kafka_AclOperation_t; +typedef struct rd_kafka_NewTopic_s rd_kafka_NewTopic_t; +rd_kafka_NewTopic_t *rd_kafka_NewTopic_new(const char *topic, int num_partitions, int replication_factor, char *errstr, size_t errstr_size); +void rd_kafka_NewTopic_destroy(rd_kafka_NewTopic_t *new_topic); +void rd_kafka_NewTopic_destroy_array(rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_replica_assignment(rd_kafka_NewTopic_t *new_topic, int32_t partition, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_NewTopic_set_config(rd_kafka_NewTopic_t *new_topic, const char *name, const char *value); +void rd_kafka_CreateTopics(rd_kafka_t *rk, rd_kafka_NewTopic_t **new_topics, size_t new_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreateTopics_result_topics(const rd_kafka_CreateTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t; +rd_kafka_DeleteTopic_t *rd_kafka_DeleteTopic_new(const char *topic); +void rd_kafka_DeleteTopic_destroy(rd_kafka_DeleteTopic_t *del_topic); +void rd_kafka_DeleteTopic_destroy_array(rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt); +void rd_kafka_DeleteTopics(rd_kafka_t *rk, rd_kafka_DeleteTopic_t **del_topics, size_t del_topic_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_DeleteTopics_result_topics(const rd_kafka_DeleteTopics_result_t *result, size_t *cntp); +typedef struct rd_kafka_NewPartitions_s rd_kafka_NewPartitions_t; +rd_kafka_NewPartitions_t *rd_kafka_NewPartitions_new(const char *topic, size_t new_total_cnt, char *errstr, size_t errstr_size); +void rd_kafka_NewPartitions_destroy(rd_kafka_NewPartitions_t *new_parts); +void rd_kafka_NewPartitions_destroy_array(rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt); +rd_kafka_resp_err_t rd_kafka_NewPartitions_set_replica_assignment(rd_kafka_NewPartitions_t *new_parts, int32_t new_partition_idx, int32_t *broker_ids, size_t broker_id_cnt, char *errstr, size_t errstr_size); +void rd_kafka_CreatePartitions(rd_kafka_t *rk, rd_kafka_NewPartitions_t **new_parts, size_t new_parts_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_result_t **rd_kafka_CreatePartitions_result_topics(const rd_kafka_CreatePartitions_result_t *result, size_t *cntp); +typedef enum rd_kafka_ConfigSource_t { + RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2, + RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3, + RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4, + RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5, + RD_KAFKA_CONFIG_SOURCE__CNT, +} rd_kafka_ConfigSource_t; +const char *rd_kafka_ConfigSource_name(rd_kafka_ConfigSource_t confsource); +typedef struct rd_kafka_ConfigEntry_s rd_kafka_ConfigEntry_t; +const char *rd_kafka_ConfigEntry_name(const rd_kafka_ConfigEntry_t *entry); +const char *rd_kafka_ConfigEntry_value(const rd_kafka_ConfigEntry_t *entry); +rd_kafka_ConfigSource_t rd_kafka_ConfigEntry_source(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_read_only(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_default(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_sensitive(const rd_kafka_ConfigEntry_t *entry); +int rd_kafka_ConfigEntry_is_synonym(const rd_kafka_ConfigEntry_t *entry); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigEntry_synonyms(const rd_kafka_ConfigEntry_t *entry, size_t *cntp); +typedef enum rd_kafka_ResourceType_t { + RD_KAFKA_RESOURCE_UNKNOWN = 0, + RD_KAFKA_RESOURCE_ANY = 1, + RD_KAFKA_RESOURCE_TOPIC = 2, + RD_KAFKA_RESOURCE_GROUP = 3, + RD_KAFKA_RESOURCE_BROKER = 4, + RD_KAFKA_RESOURCE_TRANSACTIONAL_ID = 5, + RD_KAFKA_RESOURCE__CNT, +} rd_kafka_ResourceType_t; +typedef enum rd_kafka_ResourcePatternType_t { + RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0, + RD_KAFKA_RESOURCE_PATTERN_ANY = 1, + RD_KAFKA_RESOURCE_PATTERN_MATCH = 2, + RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3, + RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4, + RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT, +} rd_kafka_ResourcePatternType_t; +typedef enum rd_kafka_AlterConfigOpType_t { + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2, + RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3, + RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT, +} rd_kafka_AlterConfigOpType_t; +const char *rd_kafka_ResourcePatternType_name(rd_kafka_ResourcePatternType_t resource_pattern_type); +const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype); +typedef struct rd_kafka_ConfigResource_s rd_kafka_ConfigResource_t; +rd_kafka_ConfigResource_t *rd_kafka_ConfigResource_new(rd_kafka_ResourceType_t restype, const char *resname); +void rd_kafka_ConfigResource_destroy(rd_kafka_ConfigResource_t *config); +void rd_kafka_ConfigResource_destroy_array(rd_kafka_ConfigResource_t **config, size_t config_cnt); +rd_kafka_resp_err_t rd_kafka_ConfigResource_set_config(rd_kafka_ConfigResource_t *config, const char *name, const char *value); +rd_kafka_error_t *rd_kafka_ConfigResource_add_incremental_config(rd_kafka_ConfigResource_t *config, const char *name, rd_kafka_AlterConfigOpType_t op_type, const char *value); +const rd_kafka_ConfigEntry_t **rd_kafka_ConfigResource_configs(const rd_kafka_ConfigResource_t *config, size_t *cntp); +rd_kafka_ResourceType_t rd_kafka_ConfigResource_type(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_name(const rd_kafka_ConfigResource_t *config); +rd_kafka_resp_err_t rd_kafka_ConfigResource_error(const rd_kafka_ConfigResource_t *config); +const char *rd_kafka_ConfigResource_error_string(const rd_kafka_ConfigResource_t *config); +void rd_kafka_AlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_AlterConfigs_result_resources(const rd_kafka_AlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_IncrementalAlterConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_IncrementalAlterConfigs_result_resources(const rd_kafka_IncrementalAlterConfigs_result_t *result, size_t *cntp); +void rd_kafka_DescribeConfigs(rd_kafka_t *rk, rd_kafka_ConfigResource_t **configs, size_t config_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConfigResource_t **rd_kafka_DescribeConfigs_result_resources(const rd_kafka_DescribeConfigs_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteRecords_s rd_kafka_DeleteRecords_t; +rd_kafka_DeleteRecords_t *rd_kafka_DeleteRecords_new(const rd_kafka_topic_partition_list_t *before_offsets); +void rd_kafka_DeleteRecords_destroy(rd_kafka_DeleteRecords_t *del_records); +void rd_kafka_DeleteRecords_destroy_array(rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt); +void rd_kafka_DeleteRecords(rd_kafka_t *rk, rd_kafka_DeleteRecords_t **del_records, size_t del_record_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_partition_list_t *rd_kafka_DeleteRecords_result_offsets(const rd_kafka_DeleteRecords_result_t *result); +typedef struct rd_kafka_TopicCollection_s rd_kafka_TopicCollection_t; +typedef struct rd_kafka_TopicPartitionInfo_s rd_kafka_TopicPartitionInfo_t; +typedef struct rd_kafka_TopicDescription_s rd_kafka_TopicDescription_t; +rd_kafka_TopicCollection_t *rd_kafka_TopicCollection_of_topic_names(const char **topics, size_t topics_cnt); +void rd_kafka_TopicCollection_destroy(rd_kafka_TopicCollection_t *topics); +void rd_kafka_DescribeTopics(rd_kafka_t *rk, const rd_kafka_TopicCollection_t *topics, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_TopicDescription_t **rd_kafka_DescribeTopics_result_topics(const rd_kafka_DescribeTopics_result_t *result, size_t *cntp); +const rd_kafka_TopicPartitionInfo_t **rd_kafka_TopicDescription_partitions(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const int rd_kafka_TopicPartitionInfo_partition(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t *rd_kafka_TopicPartitionInfo_leader(const rd_kafka_TopicPartitionInfo_t *partition); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_isr(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_Node_t **rd_kafka_TopicPartitionInfo_replicas(const rd_kafka_TopicPartitionInfo_t *partition, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_TopicDescription_authorized_operations(const rd_kafka_TopicDescription_t *topicdesc, size_t *cntp); +const char *rd_kafka_TopicDescription_name(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_Uuid_t *rd_kafka_TopicDescription_topic_id(const rd_kafka_TopicDescription_t *topicdesc); +int rd_kafka_TopicDescription_is_internal(const rd_kafka_TopicDescription_t *topicdesc); +const rd_kafka_error_t *rd_kafka_TopicDescription_error(const rd_kafka_TopicDescription_t *topicdesc); +void rd_kafka_DescribeCluster(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_Node_t **rd_kafka_DescribeCluster_result_nodes(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_AclOperation_t *rd_kafka_DescribeCluster_result_authorized_operations(const rd_kafka_DescribeCluster_result_t *result, size_t *cntp); +const rd_kafka_Node_t *rd_kafka_DescribeCluster_result_controller(const rd_kafka_DescribeCluster_result_t *result); +const char *rd_kafka_DescribeCluster_result_cluster_id(const rd_kafka_DescribeCluster_result_t *result); +typedef struct rd_kafka_ConsumerGroupListing_s rd_kafka_ConsumerGroupListing_t; +typedef struct rd_kafka_ListConsumerGroupsResult_s rd_kafka_ListConsumerGroupsResult_t; +void rd_kafka_ListConsumerGroups(rd_kafka_t *rk, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const char *rd_kafka_ConsumerGroupListing_group_id(const rd_kafka_ConsumerGroupListing_t *grplist); +int rd_kafka_ConsumerGroupListing_is_simple_consumer_group(const rd_kafka_ConsumerGroupListing_t *grplist); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupListing_state(const rd_kafka_ConsumerGroupListing_t *grplist); +rd_kafka_consumer_group_type_t rd_kafka_ConsumerGroupListing_type(const rd_kafka_ConsumerGroupListing_t *grplist); +const rd_kafka_ConsumerGroupListing_t **rd_kafka_ListConsumerGroups_result_valid(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +const rd_kafka_error_t **rd_kafka_ListConsumerGroups_result_errors(const rd_kafka_ListConsumerGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ConsumerGroupDescription_s rd_kafka_ConsumerGroupDescription_t; +typedef struct rd_kafka_MemberDescription_s rd_kafka_MemberDescription_t; +typedef struct rd_kafka_MemberAssignment_s rd_kafka_MemberAssignment_t; +void rd_kafka_DescribeConsumerGroups(rd_kafka_t *rk, const char **groups, size_t groups_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_ConsumerGroupDescription_t **rd_kafka_DescribeConsumerGroups_result_groups(const rd_kafka_DescribeConsumerGroups_result_t *result, size_t *cntp); +const char *rd_kafka_ConsumerGroupDescription_group_id(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_error_t *rd_kafka_ConsumerGroupDescription_error(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +int rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const char *rd_kafka_ConsumerGroupDescription_partition_assignor(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_AclOperation_t *rd_kafka_ConsumerGroupDescription_authorized_operations(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t *cntp); +rd_kafka_consumer_group_state_t rd_kafka_ConsumerGroupDescription_state(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_Node_t *rd_kafka_ConsumerGroupDescription_coordinator(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +size_t rd_kafka_ConsumerGroupDescription_member_count(const rd_kafka_ConsumerGroupDescription_t *grpdesc); +const rd_kafka_MemberDescription_t *rd_kafka_ConsumerGroupDescription_member(const rd_kafka_ConsumerGroupDescription_t *grpdesc, size_t idx); +const char *rd_kafka_MemberDescription_client_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_group_instance_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_consumer_id(const rd_kafka_MemberDescription_t *member); +const char *rd_kafka_MemberDescription_host(const rd_kafka_MemberDescription_t *member); +const rd_kafka_MemberAssignment_t *rd_kafka_MemberDescription_assignment(const rd_kafka_MemberDescription_t *member); +const rd_kafka_topic_partition_list_t *rd_kafka_MemberAssignment_partitions(const rd_kafka_MemberAssignment_t *assignment); +typedef struct rd_kafka_DeleteGroup_s rd_kafka_DeleteGroup_t; +rd_kafka_DeleteGroup_t *rd_kafka_DeleteGroup_new(const char *group); +void rd_kafka_DeleteGroup_destroy(rd_kafka_DeleteGroup_t *del_group); +void rd_kafka_DeleteGroup_destroy_array(rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt); +void rd_kafka_DeleteGroups(rd_kafka_t *rk, rd_kafka_DeleteGroup_t **del_groups, size_t del_group_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteGroups_result_groups(const rd_kafka_DeleteGroups_result_t *result, size_t *cntp); +typedef struct rd_kafka_ListConsumerGroupOffsets_s rd_kafka_ListConsumerGroupOffsets_t; +rd_kafka_ListConsumerGroupOffsets_t *rd_kafka_ListConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_ListConsumerGroupOffsets_destroy(rd_kafka_ListConsumerGroupOffsets_t *list_grpoffsets); +void rd_kafka_ListConsumerGroupOffsets_destroy_array(rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffset_cnt); +void rd_kafka_ListConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_ListConsumerGroupOffsets_t **list_grpoffsets, size_t list_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_ListConsumerGroupOffsets_result_groups(const rd_kafka_ListConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_AlterConsumerGroupOffsets_s rd_kafka_AlterConsumerGroupOffsets_t; +rd_kafka_AlterConsumerGroupOffsets_t *rd_kafka_AlterConsumerGroupOffsets_new(const char *group_id, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_AlterConsumerGroupOffsets_destroy(rd_kafka_AlterConsumerGroupOffsets_t *alter_grpoffsets); +void rd_kafka_AlterConsumerGroupOffsets_destroy_array(rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffset_cnt); +void rd_kafka_AlterConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_AlterConsumerGroupOffsets_t **alter_grpoffsets, size_t alter_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_AlterConsumerGroupOffsets_result_groups(const rd_kafka_AlterConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef struct rd_kafka_DeleteConsumerGroupOffsets_s rd_kafka_DeleteConsumerGroupOffsets_t; +rd_kafka_DeleteConsumerGroupOffsets_t *rd_kafka_DeleteConsumerGroupOffsets_new(const char *group, const rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_DeleteConsumerGroupOffsets_destroy(rd_kafka_DeleteConsumerGroupOffsets_t *del_grpoffsets); +void rd_kafka_DeleteConsumerGroupOffsets_destroy_array(rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffset_cnt); +void rd_kafka_DeleteConsumerGroupOffsets(rd_kafka_t *rk, rd_kafka_DeleteConsumerGroupOffsets_t **del_grpoffsets, size_t del_grpoffsets_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_group_result_t **rd_kafka_DeleteConsumerGroupOffsets_result_groups(const rd_kafka_DeleteConsumerGroupOffsets_result_t *result, size_t *cntp); +typedef enum rd_kafka_OffsetSpec_t { + RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP = (- 3), + RD_KAFKA_OFFSET_SPEC_EARLIEST = (- 2), + RD_KAFKA_OFFSET_SPEC_LATEST = (- 1), +} rd_kafka_OffsetSpec_t; +typedef struct rd_kafka_ListOffsetsResultInfo_s rd_kafka_ListOffsetsResultInfo_t; +const rd_kafka_topic_partition_t *rd_kafka_ListOffsetsResultInfo_topic_partition(const rd_kafka_ListOffsetsResultInfo_t *result_info); +int64_t rd_kafka_ListOffsetsResultInfo_timestamp(const rd_kafka_ListOffsetsResultInfo_t *result_info); +const rd_kafka_ListOffsetsResultInfo_t **rd_kafka_ListOffsets_result_infos(const rd_kafka_ListOffsets_result_t *result, size_t *cntp); +void rd_kafka_ListOffsets(rd_kafka_t *rk, rd_kafka_topic_partition_list_t *topic_partitions, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef enum rd_kafka_ScramMechanism_t { + RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0, + RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1, + RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2, + RD_KAFKA_SCRAM_MECHANISM__CNT, +} rd_kafka_ScramMechanism_t; +typedef struct rd_kafka_ScramCredentialInfo_s rd_kafka_ScramCredentialInfo_t; +rd_kafka_ScramMechanism_t rd_kafka_ScramCredentialInfo_mechanism(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +int32_t rd_kafka_ScramCredentialInfo_iterations(const rd_kafka_ScramCredentialInfo_t *scram_credential_info); +typedef struct rd_kafka_UserScramCredentialsDescription_s rd_kafka_UserScramCredentialsDescription_t; +const char *rd_kafka_UserScramCredentialsDescription_user(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_error_t *rd_kafka_UserScramCredentialsDescription_error(const rd_kafka_UserScramCredentialsDescription_t *description); +size_t rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count(const rd_kafka_UserScramCredentialsDescription_t *description); +const rd_kafka_ScramCredentialInfo_t *rd_kafka_UserScramCredentialsDescription_scramcredentialinfo(const rd_kafka_UserScramCredentialsDescription_t *description, size_t idx); +const rd_kafka_UserScramCredentialsDescription_t **rd_kafka_DescribeUserScramCredentials_result_descriptions(const rd_kafka_DescribeUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_DescribeUserScramCredentials(rd_kafka_t *rk, const char **users, size_t user_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_UserScramCredentialAlteration_s rd_kafka_UserScramCredentialAlteration_t; +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialUpsertion_new(const char *username, rd_kafka_ScramMechanism_t mechanism, int32_t iterations, const unsigned char *password, size_t password_size, const unsigned char *salt, size_t salt_size); +rd_kafka_UserScramCredentialAlteration_t *rd_kafka_UserScramCredentialDeletion_new(const char *username, rd_kafka_ScramMechanism_t mechanism); +void rd_kafka_UserScramCredentialAlteration_destroy(rd_kafka_UserScramCredentialAlteration_t *alteration); +void rd_kafka_UserScramCredentialAlteration_destroy_array(rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt); +typedef struct rd_kafka_AlterUserScramCredentials_result_response_s rd_kafka_AlterUserScramCredentials_result_response_t; +const char *rd_kafka_AlterUserScramCredentials_result_response_user(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_error_t *rd_kafka_AlterUserScramCredentials_result_response_error(const rd_kafka_AlterUserScramCredentials_result_response_t *response); +const rd_kafka_AlterUserScramCredentials_result_response_t **rd_kafka_AlterUserScramCredentials_result_responses(const rd_kafka_AlterUserScramCredentials_result_t *result, size_t *cntp); +void rd_kafka_AlterUserScramCredentials(rd_kafka_t *rk, rd_kafka_UserScramCredentialAlteration_t **alterations, size_t alteration_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_AclBinding_s rd_kafka_AclBinding_t; +typedef rd_kafka_AclBinding_t rd_kafka_AclBindingFilter_t; +const rd_kafka_error_t *rd_kafka_acl_result_error(const rd_kafka_acl_result_t *aclres); +const char *rd_kafka_AclOperation_name(rd_kafka_AclOperation_t acl_operation); +typedef enum rd_kafka_AclPermissionType_t { + RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0, + RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1, + RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2, + RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3, + RD_KAFKA_ACL_PERMISSION_TYPE__CNT, +} rd_kafka_AclPermissionType_t; +const char *rd_kafka_AclPermissionType_name(rd_kafka_AclPermissionType_t acl_permission_type); +rd_kafka_AclBinding_t *rd_kafka_AclBinding_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_AclBindingFilter_t *rd_kafka_AclBindingFilter_new(rd_kafka_ResourceType_t restype, const char *name, rd_kafka_ResourcePatternType_t resource_pattern_type, const char *principal, const char *host, rd_kafka_AclOperation_t operation, rd_kafka_AclPermissionType_t permission_type, char *errstr, size_t errstr_size); +rd_kafka_ResourceType_t rd_kafka_AclBinding_restype(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_name(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_principal(const rd_kafka_AclBinding_t *acl); +const char *rd_kafka_AclBinding_host(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclOperation_t rd_kafka_AclBinding_operation(const rd_kafka_AclBinding_t *acl); +rd_kafka_AclPermissionType_t rd_kafka_AclBinding_permission_type(const rd_kafka_AclBinding_t *acl); +rd_kafka_ResourcePatternType_t rd_kafka_AclBinding_resource_pattern_type(const rd_kafka_AclBinding_t *acl); +const rd_kafka_error_t *rd_kafka_AclBinding_error(const rd_kafka_AclBinding_t *acl); +void rd_kafka_AclBinding_destroy(rd_kafka_AclBinding_t *acl_binding); +void rd_kafka_AclBinding_destroy_array(rd_kafka_AclBinding_t **acl_bindings, size_t acl_bindings_cnt); +const rd_kafka_acl_result_t **rd_kafka_CreateAcls_result_acls(const rd_kafka_CreateAcls_result_t *result, size_t *cntp); +void rd_kafka_CreateAcls(rd_kafka_t *rk, rd_kafka_AclBinding_t **new_acls, size_t new_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_AclBinding_t **rd_kafka_DescribeAcls_result_acls(const rd_kafka_DescribeAcls_result_t *result, size_t *cntp); +void rd_kafka_DescribeAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t *acl_filter, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_DeleteAcls_result_response_s rd_kafka_DeleteAcls_result_response_t; +const rd_kafka_DeleteAcls_result_response_t **rd_kafka_DeleteAcls_result_responses(const rd_kafka_DeleteAcls_result_t *result, size_t *cntp); +const rd_kafka_error_t *rd_kafka_DeleteAcls_result_response_error(const rd_kafka_DeleteAcls_result_response_t *result_response); +const rd_kafka_AclBinding_t **rd_kafka_DeleteAcls_result_response_matching_acls(const rd_kafka_DeleteAcls_result_response_t *result_response, size_t *matching_acls_cntp); +void rd_kafka_DeleteAcls(rd_kafka_t *rk, rd_kafka_AclBindingFilter_t **del_acls, size_t del_acls_cnt, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +typedef struct rd_kafka_ElectLeaders_s rd_kafka_ElectLeaders_t; +typedef enum rd_kafka_ElectionType_t { + RD_KAFKA_ELECTION_TYPE_PREFERRED = 0, + RD_KAFKA_ELECTION_TYPE_UNCLEAN = 1, +} rd_kafka_ElectionType_t; +rd_kafka_ElectLeaders_t *rd_kafka_ElectLeaders_new(rd_kafka_ElectionType_t election_type, rd_kafka_topic_partition_list_t *partitions); +void rd_kafka_ElectLeaders_destroy(rd_kafka_ElectLeaders_t *elect_leaders); +void rd_kafka_ElectLeaders(rd_kafka_t *rk, rd_kafka_ElectLeaders_t *elect_leaders, const rd_kafka_AdminOptions_t *options, rd_kafka_queue_t *rkqu); +const rd_kafka_topic_partition_result_t **rd_kafka_ElectLeaders_result_partitions(const rd_kafka_ElectLeaders_result_t *result, size_t *cntp); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token(rd_kafka_t *rk, const char *token_value, int64_t md_lifetime_ms, const char *md_principal_name, const char **extensions, size_t extension_size, char *errstr, size_t errstr_size); +rd_kafka_resp_err_t rd_kafka_oauthbearer_set_token_failure(rd_kafka_t *rk, const char *errstr); +rd_kafka_error_t *rd_kafka_init_transactions(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_begin_transaction(rd_kafka_t *rk); +rd_kafka_error_t *rd_kafka_send_offsets_to_transaction(rd_kafka_t *rk, const rd_kafka_topic_partition_list_t *offsets, const rd_kafka_consumer_group_metadata_t *cgmetadata, int timeout_ms); +rd_kafka_error_t *rd_kafka_commit_transaction(rd_kafka_t *rk, int timeout_ms); +rd_kafka_error_t *rd_kafka_abort_transaction(rd_kafka_t *rk, int timeout_ms); +typedef struct rd_kafka_mock_cluster_s rd_kafka_mock_cluster_t; +rd_kafka_mock_cluster_t *rd_kafka_mock_cluster_new(rd_kafka_t *rk, int broker_cnt); +void rd_kafka_mock_cluster_destroy(rd_kafka_mock_cluster_t *mcluster); +rd_kafka_t *rd_kafka_mock_cluster_handle(const rd_kafka_mock_cluster_t *mcluster); +rd_kafka_mock_cluster_t *rd_kafka_handle_mock_cluster(const rd_kafka_t *rk); +const char *rd_kafka_mock_cluster_bootstraps(const rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_clear_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey); +void rd_kafka_mock_push_request_errors(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, ...); +void rd_kafka_mock_push_request_errors_array(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, size_t cnt, const rd_kafka_resp_err_t *errors); +void rd_kafka_mock_group_initial_rebalance_delay_ms(rd_kafka_mock_cluster_t *mcluster, int32_t delay_ms); +rd_kafka_resp_err_t rd_kafka_mock_broker_push_request_error_rtts(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t cnt, ...); +rd_kafka_resp_err_t rd_kafka_mock_broker_error_stack_cnt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int16_t ApiKey, size_t *cntp); +void rd_kafka_mock_topic_set_error(rd_kafka_mock_cluster_t *mcluster, const char *topic, rd_kafka_resp_err_t err); +rd_kafka_resp_err_t rd_kafka_mock_topic_create(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition_cnt, int replication_factor); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_leader(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_partition_set_follower_wmarks(rd_kafka_mock_cluster_t *mcluster, const char *topic, int32_t partition, int64_t lo, int64_t hi); +rd_kafka_resp_err_t rd_kafka_mock_partition_push_leader_response(rd_kafka_mock_cluster_t *mcluster, const char *topic, int partition, int32_t leader_id, int32_t leader_epoch); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_down(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_up(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rtt(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, int rtt_ms); +rd_kafka_resp_err_t rd_kafka_mock_broker_set_rack(rd_kafka_mock_cluster_t *mcluster, int32_t broker_id, const char *rack); +rd_kafka_resp_err_t rd_kafka_mock_coordinator_set(rd_kafka_mock_cluster_t *mcluster, const char *key_type, const char *key, int32_t broker_id); +rd_kafka_resp_err_t rd_kafka_mock_set_apiversion(rd_kafka_mock_cluster_t *mcluster, int16_t ApiKey, int16_t MinVersion, int16_t MaxVersion); +void rd_kafka_mock_start_request_tracking(rd_kafka_mock_cluster_t *mcluster); +void rd_kafka_mock_stop_request_tracking(rd_kafka_mock_cluster_t *mcluster); +typedef struct rd_kafka_mock_request_s rd_kafka_mock_request_t; +void rd_kafka_mock_request_destroy(rd_kafka_mock_request_t *mreq); +void rd_kafka_mock_request_destroy_array(rd_kafka_mock_request_t **mreqs, size_t mreq_cnt); +int32_t rd_kafka_mock_request_id(rd_kafka_mock_request_t *mreq); +int16_t rd_kafka_mock_request_api_key(rd_kafka_mock_request_t *mreq); +int64_t rd_kafka_mock_request_timestamp(rd_kafka_mock_request_t *mreq); +rd_kafka_mock_request_t **rd_kafka_mock_get_requests(rd_kafka_mock_cluster_t *mcluster, size_t *cntp); +void rd_kafka_mock_clear_requests(rd_kafka_mock_cluster_t *mcluster); +rd_kafka_resp_err_t rd_kafka_mock_telemetry_set_requested_metrics(rd_kafka_mock_cluster_t *mcluster, char **metrics, size_t metrics_cnt); +rd_kafka_resp_err_t rd_kafka_mock_telemetry_set_push_interval(rd_kafka_mock_cluster_t *mcluster, int64_t push_interval_ms); +'; diff --git a/src/constants.php b/src/constants.php index e6a02123..c42b4491 100644 --- a/src/constants.php +++ b/src/constants.php @@ -1406,13 +1406,6 @@ */ const RD_KAFKA_RESOURCE_BROKER = 4; -/** - *Number of resource types defined
- * @since 1.0.0 of librdkafka - * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 - */ -const RD_KAFKA_RESOURCE__CNT = 5; - /** *Leader epoch is older than broker epoch
* @since 1.0.1 of librdkafka @@ -2194,38 +2187,44 @@ const RD_KAFKA_SCRAM_MECHANISM__CNT = 3; /** - * define + *DescribeTopics_result_t
* @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a54fb65ad2053d2a8058932f414d0af1a */ const RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT = 1048576; /** - * define + *DescribeCluster_result_t
* @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a9834684799e542cdcf5ad60d0b3f9fc0 */ const RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT = 2097152; /** - * define + *ListOffsets_result_t
* @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8cb212872006d6ae10574cd8fdeacb7c */ const RD_KAFKA_EVENT_LISTOFFSETS_RESULT = 4194304; /** - * enum rd_kafka_admin_op_t + *DescribeTopics
* @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe */ const RD_KAFKA_ADMIN_OP_DESCRIBETOPICS = 19; /** - * enum rd_kafka_admin_op_t + *DescribeCluster
* @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe */ const RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER = 20; /** - * enum rd_kafka_admin_op_t + *ListOffsets
* @since 2.3.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe */ const RD_KAFKA_ADMIN_OP_LISTOFFSETS = 21; @@ -2259,1206 +2258,1321 @@ */ const RD_KAFKA_OFFSET_SPEC_LATEST = -1; +/** + *A different record in the batch was invalid and this message failed persisting.
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD = -138; + +/** + *Unknown Topic Id
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID = 100; + +/** + *The member epoch is fenced by the group coordinator
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH = 110; + +/** + *The instance ID is still used by another member in the consumer group
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID = 111; + +/** + *The assignor or its version range is not supported by the consumer group
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR = 112; + +/** + *The member epoch is stale
+ * @since 2.4.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH = 113; + +/** + *Client sent a push telemetry request with an invalid or outdated subscription ID.
+ * @since 2.5.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID = 117; + +/** + *Client sent a push telemetry request larger than the maximum size the broker will accept.
+ * @since 2.5.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a03509bab51072c72a8dcf52337e6d5cb + */ +const RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE = 118; + +/** + *ElectLeaders_result_t
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a7f8345f7468058dcce009b1ed891d36e + */ +const RD_KAFKA_EVENT_ELECTLEADERS_RESULT = 8388608; + +/** + * enum rd_kafka_consumer_group_type_t + * @since 2.6.0 of librdkafka + */ +const RD_KAFKA_CONSUMER_GROUP_TYPE_UNKNOWN = 0; + +/** + * enum rd_kafka_consumer_group_type_t + * @since 2.6.0 of librdkafka + */ +const RD_KAFKA_CONSUMER_GROUP_TYPE_CONSUMER = 1; + +/** + * enum rd_kafka_consumer_group_type_t + * @since 2.6.0 of librdkafka + */ +const RD_KAFKA_CONSUMER_GROUP_TYPE_CLASSIC = 2; + +/** + * enum rd_kafka_consumer_group_type_t + * @since 2.6.0 of librdkafka + */ +const RD_KAFKA_CONSUMER_GROUP_TYPE__CNT = 3; + +/** + *ElectLeaders
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#a8041b7c45068283d95f54ee14c7362fe + */ +const RD_KAFKA_ADMIN_OP_ELECTLEADERS = 22; + +/** + *Transactional ID
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#acca83a66d7783ff7683ed2691cc907c9 + */ +const RD_KAFKA_RESOURCE_TRANSACTIONAL_ID = 5; + +/** + *Preferred Replica Election
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aea051bad25a647e140abc310d2f400d4 + */ +const RD_KAFKA_ELECTION_TYPE_PREFERRED = 0; + +/** + *Unclean Election
+ * @since 2.6.0 of librdkafka + * @link https://docs.confluent.io/platform/current/clients/librdkafka/html/rdkafka_8h.html#aea051bad25a647e140abc310d2f400d4 + */ +const RD_KAFKA_ELECTION_TYPE_UNCLEAN = 1; + const RD_KAFKA_SUPPORTED_METHODS = [ 'rd_kafka_version' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_version_str' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_get_debug_contexts' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_get_err_descs' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_err2str' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_err2name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_last_error' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_errno2err' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_errno' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_fatal_error' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_test_fatal_error' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_add' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_add_range' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_del' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_del_by_idx' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_copy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_set_offset' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_find' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_list_sort' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_headers_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_headers_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_headers_copy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_header_add' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_header_remove' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_header_get_last' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_header_get' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_header_get_all' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_timestamp' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_latency' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_headers' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_detach_headers' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_set_headers' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_header_cnt' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_status' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_dup' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_dup_filter' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_events' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_background_event_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_dr_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_dr_msg_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_consume_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_rebalance_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_offset_commit_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_error_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_throttle_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_log_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_stats_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_socket_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_connect_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_closesocket_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_opaque' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_opaque' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_default_topic_conf' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_get' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_get' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_dump' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_dump' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_dump_free' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_properties_show' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_dup' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_default_topic_conf_dup' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_set' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_set_opaque' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_set_partitioner_cb' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_conf_set_msg_order_cmp' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_available' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_msg_partitioner_random' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_msg_partitioner_consistent' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_msg_partitioner_consistent_random' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_msg_partitioner_murmur2' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_msg_partitioner_murmur2_random' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_destroy_flags' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_type' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_memberid' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_clusterid' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_controllerid' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_opaque' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_poll' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_yield' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_pause_partitions' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_resume_partitions' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_query_watermark_offsets' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_get_watermark_offsets' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_offsets_for_times' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mem_free' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_get_main' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_get_consumer' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_get_partition' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_get_background' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_forward' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_set_log_queue' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_length' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_io_event_enable' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_cb_event_enable' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_start' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_start_queue' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_stop' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_seek' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_batch' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_callback' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_queue' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_batch_queue' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consume_callback_queue' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_offset_store' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_offsets_store' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_subscribe' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_unsubscribe' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_subscription' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_poll' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_close' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_assign' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_assignment' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_commit' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_commit_message' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_commit_queue' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_committed' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_position' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_produce' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_producev' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_produce_batch' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_flush' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_purge' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_metadata' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_metadata_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_list_groups' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_group_list_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_brokers_add' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_set_logger' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_set_log_level' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_log_print' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_log_syslog' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_outq_len' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_dump' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_thread_cnt' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_wait_destroyed' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_unittest' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_poll_set_consumer' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_type' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_message_next' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_message_array' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_message_count' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_error' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_error_string' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_error_is_fatal' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_opaque' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_log' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_stats' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_topic_partition_list' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_topic_partition' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_CreateTopics_result' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DeleteTopics_result' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_CreatePartitions_result' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_AlterConfigs_result' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DescribeConfigs_result' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_poll' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_poll_callback' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_plugin_f_conf_init_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_conf_set_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_conf_dup_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_conf_destroy_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_new_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_destroy_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_send_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_acknowledgement_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_consume_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_commit_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_request_sent_t' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_interceptor_add_on_conf_set' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_interceptor_add_on_conf_dup' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_interceptor_add_on_conf_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_interceptor_add_on_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_send' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_acknowledgement' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_consume' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_commit' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_request_sent' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_result_error' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_result_error_string' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_result_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_request_timeout' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_operation_timeout' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_validate_only' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_broker' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_opaque' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewTopic_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewTopic_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewTopic_destroy_array' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewTopic_set_replica_assignment' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewTopic_set_config' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_CreateTopics' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_CreateTopics_result_topics' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteTopic_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteTopic_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteTopic_destroy_array' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteTopics' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteTopics_result_topics' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewPartitions_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewPartitions_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewPartitions_destroy_array' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_NewPartitions_set_replica_assignment' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_CreatePartitions' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_CreatePartitions_result_topics' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigSource_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_value' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_source' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_is_read_only' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_is_default' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_is_sensitive' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_is_synonym' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigEntry_synonyms' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ResourceType_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_new' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_destroy' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_destroy_array' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_set_config' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_configs' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_type' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_name' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_error' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_error_string' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterConfigs' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterConfigs_result_resources' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeConfigs' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeConfigs_result_resources' => [ 'min' => '1.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf' => [ 'min' => '1.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_oauthbearer_token_refresh_cb' => [ 'min' => '1.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_ssl_cert_verify_cb' => [ 'min' => '1.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_ssl_cert' => [ 'min' => '1.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_config_string' => [ 'min' => '1.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_oauthbearer_set_token' => [ 'min' => '1.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_oauthbearer_set_token_failure' => [ 'min' => '1.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_thread_start_t' => [ 'min' => '1.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_thread_exit_t' => [ 'min' => '1.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_thread_start' => [ 'min' => '1.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_thread_exit' => [ 'min' => '1.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_cluster_new' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_cluster_destroy' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_cluster_handle' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_cluster_bootstraps' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_push_request_errors' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_topic_set_error' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_partition_set_leader' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_partition_set_follower' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_partition_set_follower_wmarks' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_broker_set_rack' => [ 'min' => '1.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_code' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_name' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_string' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_is_fatal' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_is_retriable' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_txn_requires_abort' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_destroy' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_error_new' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_msg_partitioner_fnv1a' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_msg_partitioner_fnv1a_random' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_metadata' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_metadata_new' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_metadata_destroy' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_metadata_write' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_metadata_read' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_init_transactions' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_begin_transaction' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_send_offsets_to_transaction' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_commit_transaction' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_abort_transaction' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_handle_mock_cluster' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_topic_create' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_broker_set_down' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_broker_set_up' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_coordinator_set' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_set_apiversion' => [ 'min' => '1.4.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_broker_set_rtt' => [ 'min' => '1.4.4', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_errstr' => [ 'min' => '1.5.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_broker_id' => [ 'min' => '1.5.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_produceva' => [ 'min' => '1.5.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_debug_contexts' => [ 'min' => '1.5.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_broker_push_request_errors' => [ 'min' => '1.5.0', @@ -3466,750 +3580,822 @@ ], 'rd_kafka_conf_get_default_topic_conf' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_yield' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_seek_partitions' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_incremental_assign' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_incremental_unassign' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_rebalance_protocol' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_assignment_lost' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_metadata_new_with_genid' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DeleteRecords_result' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DeleteGroups_result' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DeleteConsumerGroupOffsets_result' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_group_result_error' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_group_result_name' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_group_result_partitions' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteRecords_new' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteRecords_destroy' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteRecords_destroy_array' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteRecords' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteRecords_result_offsets' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteGroup_new' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteGroup_destroy' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteGroup_destroy_array' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteGroups' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteGroups_result_groups' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteConsumerGroupOffsets_new' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteConsumerGroupOffsets_destroy' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteConsumerGroupOffsets_destroy_array' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteConsumerGroupOffsets' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteConsumerGroupOffsets_result_groups' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_clear_request_errors' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_push_request_errors_array' => [ 'min' => '1.6.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_response_received_t' => [ 'min' => '1.6.1', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_response_received' => [ 'min' => '1.6.1', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_engine_callback_data' => [ 'min' => '1.7.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mem_calloc' => [ 'min' => '1.7.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mem_malloc' => [ 'min' => '1.7.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_broker_push_request_error_rtts' => [ 'min' => '1.7.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_enable_sasl_queue' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_queue_get_sasl' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_sasl_background_callbacks_enable' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_close_queue' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_closed' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_CreateAcls_result' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DescribeAcls_result' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DeleteAcls_result' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ResourcePatternType_name' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_acl_result_error' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclOperation_name' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclPermissionType_name' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_new' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBindingFilter_new' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_restype' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_name' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_principal' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_host' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_operation' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_permission_type' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_resource_pattern_type' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_error' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_destroy' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AclBinding_destroy_array' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_CreateAcls_result_acls' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_CreateAcls' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeAcls_result_acls' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeAcls' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteAcls_result_responses' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteAcls_result_response_error' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteAcls_result_response_matching_acls' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DeleteAcls' => [ 'min' => '1.9.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_conf_set_resolve_cb' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_sasl_set_credentials' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Node_id' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Node_host' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Node_port' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_state_name' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_consumer_group_state_code' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_ListConsumerGroups_result' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DescribeConsumerGroups_result' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_AlterConsumerGroupOffsets_result' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_ListConsumerGroupOffsets_result' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_f_on_broker_state_change_t' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_interceptor_add_on_broker_state_change' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_require_stable_offsets' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_match_consumer_group_states' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroups' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupListing_group_id' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupListing_is_simple_consumer_group' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupListing_state' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroups_result_valid' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroups_result_errors' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeConsumerGroups' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeConsumerGroups_result_groups' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_group_id' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_error' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_is_simple_consumer_group' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_partition_assignor' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_state' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_coordinator' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_member_count' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_member' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_MemberDescription_client_id' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_MemberDescription_group_instance_id' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_MemberDescription_consumer_id' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_MemberDescription_host' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_MemberDescription_assignment' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_MemberAssignment_partitions' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroupOffsets_new' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroupOffsets_destroy' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroupOffsets_destroy_array' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroupOffsets' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListConsumerGroupOffsets_result_groups' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterConsumerGroupOffsets_new' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterConsumerGroupOffsets_destroy' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterConsumerGroupOffsets_destroy_array' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterConsumerGroupOffsets' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterConsumerGroupOffsets_result_groups' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_broker_error_stack_cnt' => [ 'min' => '2.0.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_set_leader_epoch' => [ 'min' => '2.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_topic_partition_get_leader_epoch' => [ 'min' => '2.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_message_leader_epoch' => [ 'min' => '2.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_offset_store_message' => [ 'min' => '2.1.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_IncrementalAlterConfigs_result' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DescribeUserScramCredentials_result' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_AlterUserScramCredentials_result' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConfigResource_add_incremental_config' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_IncrementalAlterConfigs' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_IncrementalAlterConfigs_result_resources' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ScramCredentialInfo_mechanism' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ScramCredentialInfo_iterations' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialsDescription_user' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialsDescription_error' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialsDescription_scramcredentialinfo' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeUserScramCredentials_result_descriptions' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeUserScramCredentials' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialUpsertion_new' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialDeletion_new' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialAlteration_destroy' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_UserScramCredentialAlteration_destroy_array' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterUserScramCredentials_result_response_user' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterUserScramCredentials_result_response_error' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterUserScramCredentials_result_responses' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AlterUserScramCredentials' => [ 'min' => '2.2.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Uuid_base64str' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Uuid_least_significant_bits' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Uuid_most_significant_bits' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Uuid_new' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Uuid_copy' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Uuid_destroy' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_Node_rack' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DescribeTopics_result' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_DescribeCluster_result' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_event_ListOffsets_result' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_include_authorized_operations' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_AdminOptions_set_isolation_level' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicCollection_of_topic_names' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicCollection_destroy' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeTopics' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeTopics_result_topics' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicDescription_partitions' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicPartitionInfo_partition' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicPartitionInfo_leader' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicPartitionInfo_isr' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicPartitionInfo_replicas' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicDescription_authorized_operations' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicDescription_name' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicDescription_topic_id' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicDescription_is_internal' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_TopicDescription_error' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeCluster' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeCluster_result_nodes' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeCluster_result_authorized_operations' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeCluster_result_controller' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_DescribeCluster_result_cluster_id' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ConsumerGroupDescription_authorized_operations' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListOffsetsResultInfo_topic_partition' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListOffsetsResultInfo_timestamp' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListOffsets_result_infos' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_ListOffsets' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_start_request_tracking' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_stop_request_tracking' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_request_destroy' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_request_id' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_request_api_key' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_request_timestamp' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_get_requests' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' ], 'rd_kafka_mock_clear_requests' => [ 'min' => '2.3.0', - 'max' => '2.3.0' + 'max' => '2.6.0' + ], + 'rd_kafka_message_produce_errstr' => [ + 'min' => '2.4.0', + 'max' => '2.6.0' + ], + 'rd_kafka_consumer_group_metadata_member_id' => [ + 'min' => '2.4.0', + 'max' => '2.6.0' + ], + 'rd_kafka_mock_partition_push_leader_response' => [ + 'min' => '2.4.0', + 'max' => '2.6.0' + ], + 'rd_kafka_mock_request_destroy_array' => [ + 'min' => '2.4.0', + 'max' => '2.6.0' + ], + 'rd_kafka_mock_telemetry_set_requested_metrics' => [ + 'min' => '2.5.0', + 'max' => '2.6.0' + ], + 'rd_kafka_mock_telemetry_set_push_interval' => [ + 'min' => '2.5.0', + 'max' => '2.6.0' + ], + 'rd_kafka_consumer_group_type_name' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_consumer_group_type_code' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_event_ElectLeaders_result' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_topic_partition_result_partition' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_topic_partition_result_error' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_AdminOptions_set_match_consumer_group_types' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_ConsumerGroupListing_type' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_ElectLeaders_new' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_ElectLeaders_destroy' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_ElectLeaders' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_ElectLeaders_result_partitions' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' + ], + 'rd_kafka_mock_group_initial_rebalance_delay_ms' => [ + 'min' => '2.6.0', + 'max' => '2.6.0' ] ];