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);
}
}
}