- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
90 lines
3.4 KiB
Java
90 lines
3.4 KiB
Java
package com.google.firebase.perf.network;
|
|
|
|
import com.google.firebase.perf.metrics.NetworkRequestMetricBuilder;
|
|
import com.google.firebase.perf.util.Timer;
|
|
import java.io.IOException;
|
|
import java.io.OutputStream;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public final class InstrHttpOutputStream extends OutputStream {
|
|
public long bytesWritten = -1;
|
|
public NetworkRequestMetricBuilder networkMetricBuilder;
|
|
public final OutputStream outputStream;
|
|
public final Timer timer;
|
|
|
|
public InstrHttpOutputStream(OutputStream outputStream, NetworkRequestMetricBuilder networkRequestMetricBuilder, Timer timer) {
|
|
this.outputStream = outputStream;
|
|
this.networkMetricBuilder = networkRequestMetricBuilder;
|
|
this.timer = timer;
|
|
}
|
|
|
|
@Override // java.io.OutputStream, java.io.Closeable, java.lang.AutoCloseable
|
|
public void close() {
|
|
long j = this.bytesWritten;
|
|
if (j != -1) {
|
|
this.networkMetricBuilder.setRequestPayloadBytes(j);
|
|
}
|
|
this.networkMetricBuilder.setTimeToRequestCompletedMicros(this.timer.getDurationMicros());
|
|
try {
|
|
this.outputStream.close();
|
|
} catch (IOException e) {
|
|
this.networkMetricBuilder.setTimeToResponseCompletedMicros(this.timer.getDurationMicros());
|
|
NetworkRequestMetricBuilderUtil.logError(this.networkMetricBuilder);
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
@Override // java.io.OutputStream, java.io.Flushable
|
|
public void flush() {
|
|
try {
|
|
this.outputStream.flush();
|
|
} catch (IOException e) {
|
|
this.networkMetricBuilder.setTimeToResponseCompletedMicros(this.timer.getDurationMicros());
|
|
NetworkRequestMetricBuilderUtil.logError(this.networkMetricBuilder);
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
@Override // java.io.OutputStream
|
|
public void write(int i) {
|
|
try {
|
|
this.outputStream.write(i);
|
|
long j = this.bytesWritten + 1;
|
|
this.bytesWritten = j;
|
|
this.networkMetricBuilder.setRequestPayloadBytes(j);
|
|
} catch (IOException e) {
|
|
this.networkMetricBuilder.setTimeToResponseCompletedMicros(this.timer.getDurationMicros());
|
|
NetworkRequestMetricBuilderUtil.logError(this.networkMetricBuilder);
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
@Override // java.io.OutputStream
|
|
public void write(byte[] bArr) {
|
|
try {
|
|
this.outputStream.write(bArr);
|
|
long length = this.bytesWritten + bArr.length;
|
|
this.bytesWritten = length;
|
|
this.networkMetricBuilder.setRequestPayloadBytes(length);
|
|
} catch (IOException e) {
|
|
this.networkMetricBuilder.setTimeToResponseCompletedMicros(this.timer.getDurationMicros());
|
|
NetworkRequestMetricBuilderUtil.logError(this.networkMetricBuilder);
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
@Override // java.io.OutputStream
|
|
public void write(byte[] bArr, int i, int i2) {
|
|
try {
|
|
this.outputStream.write(bArr, i, i2);
|
|
long j = this.bytesWritten + i2;
|
|
this.bytesWritten = j;
|
|
this.networkMetricBuilder.setRequestPayloadBytes(j);
|
|
} catch (IOException e) {
|
|
this.networkMetricBuilder.setTimeToResponseCompletedMicros(this.timer.getDurationMicros());
|
|
NetworkRequestMetricBuilderUtil.logError(this.networkMetricBuilder);
|
|
throw e;
|
|
}
|
|
}
|
|
}
|