in metrics/src/main/java/com/facebook/battery/metrics/healthstats/HealthStatsMetrics.java [149:173]
public HealthStatsMetrics diff(
@Nullable HealthStatsMetrics b, @Nullable HealthStatsMetrics output) {
if (output == null) {
output = new HealthStatsMetrics();
}
output.dataType = dataType;
if (b == null || compareSnapshotAge(this, b) < 0 /* short circuit if healthstats reset */) {
output.set(this);
} else if (!strEquals(b.dataType, dataType)) {
throw new IllegalArgumentException(
"Attempting to subtract different types of HealthStatMetrics: "
+ dataType
+ " and "
+ b.dataType);
} else {
op(OP_DIFF, measurement, b.measurement, output.measurement);
op(OP_DIFF, measurements, b.measurements, output.measurements);
op(OP_DIFF, timer, b.timer, output.timer);
op(OP_DIFF, timers, b.timers, output.timers);
op(OP_DIFF, stats, b.stats, output.stats);
}
return output;
}