// Consumer API internal void Subscribe(ICollection <string> topics) { IntPtr list = LibRdKafka.topic_partition_list_new((IntPtr)topics.Count); if (list == IntPtr.Zero) { throw new Exception("Failed to create topic partition list"); } foreach (string topic in topics) { LibRdKafka.topic_partition_list_add(list, topic, RD_KAFKA_PARTITION_UA); } ErrorCode err = LibRdKafka.subscribe(handle, list); LibRdKafka.topic_partition_list_destroy(list); if (err != ErrorCode.NO_ERROR) { throw RdKafkaException.FromErr(err, "Failed to subscribe to topics"); } }