internal void Commit() { ErrorCode err = LibRdKafka.commit(handle, IntPtr.Zero, false); if (err != ErrorCode.NO_ERROR) { throw new KafkaException(err, "Failed to commit offsets"); } }
internal void Commit(ICollection <TopicPartitionOffset> offsets) { IntPtr list = LibRdKafka.topic_partition_list_new((IntPtr)offsets.Count); if (list == IntPtr.Zero) { throw new Exception("Failed to create offset commit list"); } foreach (var offset in offsets) { IntPtr ptr = LibRdKafka.topic_partition_list_add(list, offset.Topic, offset.Partition); Marshal.WriteInt64( ptr, (int)Marshal.OffsetOf <rd_kafka_topic_partition>("offset"), offset.Offset); } ErrorCode err = LibRdKafka.commit(handle, list, false); LibRdKafka.topic_partition_list_destroy(list); if (err != ErrorCode.NO_ERROR) { throw new KafkaException(err, "Failed to commit offsets"); } }