internal static Topic Decode(KafkaDecoder decoder) { var errorCode = decoder.ReadErrorResponseCode(); var name = decoder.ReadString(); var numPartitions = decoder.ReadInt32(); var partitions = new Partition[numPartitions]; for (int i = 0; i < numPartitions; i++) { partitions[i] = Partition.Decode(decoder); } var topic = new Topic(errorCode, name, partitions); return topic; }
internal static Partition Decode(KafkaDecoder decoder) { var errorCode = decoder.ReadErrorResponseCode(); var partitionId = decoder.ReadInt32(); var leaderId = decoder.ReadInt32(); var numReplicas = decoder.ReadInt32(); var replicas = new int[numReplicas]; for (int i = 0; i < numReplicas; i++) { replicas[i] = decoder.ReadInt32(); } var numIsr = decoder.ReadInt32(); var isrs = new int[numIsr]; for (int i = 0; i < numIsr; i++) { isrs[i] = decoder.ReadInt32(); } var partition = new Partition(errorCode, partitionId, leaderId, replicas, isrs); return partition; }
private Topic(ErrorResponseCode errorCode, string name, Partition[] partitions) { this.ErrorCode = errorCode; this.Name = name; this.Partitions = partitions; }
protected bool Equals(Partition other) { return PartitionId == other.PartitionId; }