toBytes method

  1. @override
List<int> toBytes()
override

Converts this request into a binary representation according to Kafka protocol.

Implementation

@override
List<int> toBytes() {
  var builder = new KafkaBytesBuilder.withRequestHeader(apiKey, apiVersion, correlationId);
  builder.addInt32(replicaId);

  builder.addInt32(_topics.length);
  _topics.forEach((topicName, partitions) {
    builder.addString(topicName);
    builder.addInt32(partitions.length);
    partitions.forEach((p) {
      builder.addInt32(p.partitionId);
      builder.addInt64(p.time);
      builder.addInt32(p.maxNumberOfOffsets);
    });
  });

  var body = builder.takeBytes();
  builder.addBytes(body);

  return builder.takeBytes();
}