findTopics method

List<FkafkaTopic> findTopics({
  1. List<String> topics = const [],
})

find topics

topics specified topics, query all topics if null

Implementation

List<FkafkaTopic> findTopics({List<String> topics = const []}) {
  Pointer<Pointer<rd_kafka_metadata_t>> rd_kafka_metadata = calloc();
  // find
  _bridges.rd_kafka_metadata(
      _pc._kafkaPtr,
      // always query all topics
      1,
      nullptr,
      rd_kafka_metadata,
      defaultTimeoutMs
  );

  // traverse the topic
  final result = rd_kafka_metadata.value.ref.topicList
      .map((_) => FkafkaTopic.metadata(_))
      .toList();

  // filter
  if (topics.isNotEmpty) {
    result.removeWhere((_) => !topics.contains(_.name));
  }

  // release
  calloc.free(rd_kafka_metadata);

  return result;
}