toBytes method
Implementation
@override
List<int> toBytes() {
var builder = new KafkaBytesBuilder.withRequestHeader(apiKey, apiVersion, correlationId);
// TODO: replace groupBy with ListMultimap
// ignore: STRONG_MODE_DOWN_CAST_COMPOSITE
Map<String, List<ConsumerOffset>> groupedByTopic = groupBy(offsets, (o) => o.topicName);
var timestamp = DateTime.now().millisecondsSinceEpoch;
builder.addString(consumerGroup);
builder.addInt32(consumerGroupGenerationId);
builder.addString(consumerId);
builder.addInt32(groupedByTopic.length);
groupedByTopic.forEach((topicName, partitionOffsets) {
builder.addString(topicName);
builder.addInt32(partitionOffsets.length);
partitionOffsets.forEach((p) {
builder.addInt32(p.partitionId);
builder.addInt64(p.offset);
builder.addInt64(timestamp);
builder.addString(p.metadata);
});
});
var body = builder.takeBytes();
builder.addBytes(body);
return builder.takeBytes();
}