FetchResponse.fromBytes constructor
Creates new instance of FetchResponse from binary data.
Implementation
factory FetchResponse.fromBytes(List<int> data) {
var reader = new KafkaBytesReader.fromBytes(data);
var size = reader.readInt32();
assert(size == data.length - 4);
reader.readInt32(); // correlationId
var count = reader.readInt32();
List<FetchResult> results = [];
var hasErrors = false;
while (count > 0) {
var topicName = reader.readString();
var partitionCount = reader.readInt32();
while (partitionCount > 0) {
var partitionId = reader.readInt32();
var errorCode = reader.readInt16();
var highwaterMarkOffset = reader.readInt64();
var messageSetSize = reader.readInt32();
var data = reader.readRaw(messageSetSize);
var messageReader = new KafkaBytesReader.fromBytes(data);
var messageSet = new MessageSet.fromBytes(messageReader);
if (errorCode != KafkaServerError.NoError) hasErrors = true;
results.add(new FetchResult(topicName, partitionId, errorCode, highwaterMarkOffset, messageSet));
partitionCount--;
}
count--;
}
return new FetchResponse._(results, hasErrors);
}