package net.minecraft.launcher.updater.download;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
public class MonitoringInputStream extends FilterInputStream {
private final ProgressContainer monitor;
protected MonitoringInputStream(InputStream in, ProgressContainer monitor) {
super(in);
this.monitor = monitor;
}
public int read() throws IOException {
int result = this.in.read();
if (result >= 0) {
this.monitor.addProgress(1L);
}
return result;
}
public int read(byte[] buffer) throws IOException {
int size = this.in.read(buffer);
if (size >= 0) {
this.monitor.addProgress(size);
}
return size;
}
public int read(byte[] buffer, int off, int len) throws IOException {
int size = this.in.read(buffer, off, len);
if (size > 0) {
this.monitor.addProgress(size);
}
return size;
}
public long skip(long size) throws IOException {
long skipped = super.skip(size);
if (skipped > 0L) {
this.monitor.addProgress(skipped);
}
return skipped;
}
}