public static PartitionResponseInfo readFrom(DataInputStream stream, ClusterMap map, short getResponseVersion)
      throws IOException {
    PartitionId partitionId = map.getPartitionIdFromStream(stream);
    MessageInfoAndMetadataListSerde messageInfoAndMetadataList =
        MessageInfoAndMetadataListSerde.deserializeMessageInfoAndMetadataList(stream, map,
            getMessageInfoAndMetadataListSerDeVersion(getResponseVersion));
    ServerErrorCode error = ServerErrorCode.values()[stream.readShort()];
    if (error != ServerErrorCode.NoError) {
      return new PartitionResponseInfo(partitionId, new ArrayList<>(), new ArrayList<>(), error, getResponseVersion);
    } else {
      return new PartitionResponseInfo(partitionId, messageInfoAndMetadataList.getMessageInfoList(),
          messageInfoAndMetadataList.getMessageMetadataList(), ServerErrorCode.NoError, getResponseVersion);
    }
  }
Contains the partition and the message info list for a partition. This is used by
get response to specify the message info list in a partition
ambry-protocol/src/main/java/com/github/ambry/protocol/PartitionResponseInfo.java