findTopics method
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;
}