public int Parse(byte[] data, int dataOffset) { int bufferOffset = dataOffset; bufferOffset = BufferReader.Read(data, bufferOffset, out topicErrorCode); bufferOffset = BufferReader.Read(data, bufferOffset, out topicName); PartitionMetadatas = new Dictionary <int, PartitionMetadata>(); int partitionCount; bufferOffset = BufferReader.Read(data, bufferOffset, out partitionCount); for (var i = 0; i < partitionCount; i++) { PartitionMetadata metadata = new PartitionMetadata(); bufferOffset = metadata.Parse(data, bufferOffset); PartitionMetadatas.Add(metadata.PartitionId, metadata); } return(bufferOffset); }
public override string ToString() { var sb = new StringBuilder(); sb.AppendLine("Topics:"); foreach (TopicMetaData topicMetaData in topicMetaDatas.Values) { foreach (var partitionId in topicMetaData.Partitions()) { PartitionMetadata partitionMetaData = topicMetaData.Partition(partitionId); sb.Append("\tname: ").Append(topicMetaData.TopicName).Append('\t'); sb.Append("partition: ").Append(partitionMetaData.PartitionId).Append('\t'); sb.Append("leader: ").Append(partitionMetaData.Leader).Append('\t'); sb.Append("replicas: "); for (int index = 0; index < partitionMetaData.Replicas.Count; index++) { if (index != 0) { sb.Append(','); } sb.Append(partitionMetaData.Replicas[index]); } sb.Append("\tirs: "); for (int index = 0; index < partitionMetaData.Irs.Count; index++) { if (index != 0) { sb.Append(','); } sb.Append(partitionMetaData.Irs[index]); } sb.AppendLine(); } } return(sb.ToString()); }