public void write()

in client-tez/src/main/java/org/apache/tez/common/ShuffleAssignmentsInfoWritable.java [49:101]


  public void write(DataOutput dataOutput) throws IOException {
    if (shuffleAssignmentsInfo == null) {
      dataOutput.writeInt(-1);
      LOG.warn("shuffleAssignmentsInfo is null, no need write");
      return;
    } else {
      dataOutput.writeInt(1);
    }

    Map<Integer, List<ShuffleServerInfo>> partitionToServers =
        shuffleAssignmentsInfo.getPartitionToServers();
    if (MapUtils.isEmpty(partitionToServers)) {
      dataOutput.writeInt(-1);
    } else {
      dataOutput.writeInt(partitionToServers.size());
      for (Map.Entry<Integer, List<ShuffleServerInfo>> entry : partitionToServers.entrySet()) {
        dataOutput.writeInt(entry.getKey());
        if (CollectionUtils.isEmpty(entry.getValue())) {
          dataOutput.writeInt(-1);
        } else {
          dataOutput.writeInt(entry.getValue().size());
          for (ShuffleServerInfo serverInfo : entry.getValue()) {
            dataOutput.writeUTF(serverInfo.getId());
            dataOutput.writeUTF(serverInfo.getHost());
            dataOutput.writeInt(serverInfo.getGrpcPort());
          }
        }
      }
    }

    Map<ShuffleServerInfo, List<PartitionRange>> serverToPartitionRanges =
        shuffleAssignmentsInfo.getServerToPartitionRanges();
    if (MapUtils.isEmpty(serverToPartitionRanges)) {
      dataOutput.writeInt(-1);
    } else {
      dataOutput.writeInt(serverToPartitionRanges.size());
      for (Map.Entry<ShuffleServerInfo, List<PartitionRange>> entry :
          serverToPartitionRanges.entrySet()) {
        dataOutput.writeUTF(entry.getKey().getId());
        dataOutput.writeUTF(entry.getKey().getHost());
        dataOutput.writeInt(entry.getKey().getGrpcPort());
        if (CollectionUtils.isEmpty(entry.getValue())) {
          dataOutput.writeInt(-1);
        } else {
          dataOutput.writeInt(entry.getValue().size());
          for (PartitionRange range : entry.getValue()) {
            dataOutput.writeInt(range.getStart());
            dataOutput.writeInt(range.getEnd());
          }
        }
      }
    }
  }