public void serializeContents()

in serializers/src/main/java/com/facebook/battery/serializer/healthstats/HealthStatsMetricsSerializer.java [32:87]


  public void serializeContents(HealthStatsMetrics metrics, DataOutput output) throws IOException {
    writeString(metrics.dataType, output);

    int measurementLength = metrics.measurement.size();
    output.writeInt(measurementLength);
    for (int i = 0; i < measurementLength; i++) {
      output.writeInt(metrics.measurement.keyAt(i));
      output.writeLong(metrics.measurement.valueAt(i));
    }

    int timerLength = metrics.timer.size();
    output.writeInt(timerLength);
    for (int i = 0; i < timerLength; i++) {
      output.writeInt(metrics.timer.keyAt(i));
      writeTimer(metrics.timer.valueAt(i), output);
    }

    int measurementsLength = metrics.measurements.size();
    output.writeInt(measurementsLength);
    for (int i = 0; i < measurementsLength; i++) {
      output.writeInt(metrics.measurements.keyAt(i));
      ArrayMap<String, Long> currentMeasurement = metrics.measurements.valueAt(i);
      int currentMeasurementLength = currentMeasurement.size();
      output.writeInt(currentMeasurementLength);
      for (int j = 0; j < currentMeasurementLength; j++) {
        writeString(currentMeasurement.keyAt(j), output);
        output.writeLong(currentMeasurement.valueAt(j));
      }
    }

    int timersLength = metrics.timers.size();
    output.writeInt(timersLength);
    for (int i = 0; i < timersLength; i++) {
      output.writeInt(metrics.timers.keyAt(i));
      ArrayMap<String, TimerMetrics> currentTimer = metrics.timers.valueAt(i);
      int currentTimerLength = currentTimer.size();
      output.writeInt(currentTimerLength);
      for (int j = 0; j < currentTimerLength; j++) {
        writeString(currentTimer.keyAt(j), output);
        writeTimer(currentTimer.valueAt(j), output);
      }
    }

    int statsLength = metrics.stats.size();
    output.writeInt(statsLength);
    for (int i = 0; i < statsLength; i++) {
      output.writeInt(metrics.stats.keyAt(i));
      ArrayMap<String, HealthStatsMetrics> currentStats = metrics.stats.valueAt(i);
      int currentStatsLength = currentStats.size();
      output.writeInt(currentStatsLength);
      for (int j = 0; j < currentStatsLength; j++) {
        writeString(currentStats.keyAt(j), output);
        serializeContents(currentStats.valueAt(j), output);
      }
    }
  }