mirror of
https://github.com/johndoe6345789/tustu.git
synced 2026-04-25 06:04:59 +00:00
126 lines
3.2 KiB
Java
126 lines
3.2 KiB
Java
package aI;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
|
|
public class InputStreamExtension extends InputStream {
|
|
private boolean d = true;
|
|
|
|
private List e = new ArrayList();
|
|
|
|
private byte[] f = null;
|
|
|
|
protected int a;
|
|
|
|
protected int b = 0;
|
|
|
|
protected int c;
|
|
|
|
public InputStreamExtension(byte[] paramArrayOfbyte) {
|
|
this.f = paramArrayOfbyte;
|
|
this.a = 0;
|
|
this.c = paramArrayOfbyte.length;
|
|
}
|
|
|
|
public synchronized int read() {
|
|
if (this.a == this.c && this.d)
|
|
b(a());
|
|
return (this.a < this.c) ? (this.f[this.a++] & 0xFF) : -1;
|
|
}
|
|
|
|
public synchronized int read(byte[] paramArrayOfbyte, int paramInt1, int paramInt2) {
|
|
if (paramArrayOfbyte == null)
|
|
throw new NullPointerException();
|
|
if (paramInt1 < 0 || paramInt2 < 0 || paramInt2 > paramArrayOfbyte.length - paramInt1)
|
|
throw new IndexOutOfBoundsException();
|
|
if (this.a >= this.c) {
|
|
if (this.a == this.c && this.d)
|
|
b(a());
|
|
if (this.a >= this.c)
|
|
return -1;
|
|
}
|
|
if (this.a + paramInt2 > this.c)
|
|
paramInt2 = this.c - this.a;
|
|
if (paramInt2 <= 0)
|
|
return 0;
|
|
System.arraycopy(this.f, this.a, paramArrayOfbyte, paramInt1, paramInt2);
|
|
this.a += paramInt2;
|
|
return paramInt2;
|
|
}
|
|
|
|
public synchronized long skip(long paramLong) {
|
|
if (this.a + paramLong > this.c)
|
|
paramLong = (this.c - this.a);
|
|
if (paramLong < 0L)
|
|
return 0L;
|
|
this.a = (int)(this.a + paramLong);
|
|
return paramLong;
|
|
}
|
|
|
|
public synchronized int available() {
|
|
return this.c - this.a;
|
|
}
|
|
|
|
public boolean markSupported() {
|
|
return true;
|
|
}
|
|
|
|
public void mark(int paramInt) {
|
|
this.b = this.a;
|
|
}
|
|
|
|
public synchronized void reset() {
|
|
this.a = this.b;
|
|
}
|
|
|
|
public void close() {}
|
|
|
|
public synchronized void a(byte[] paramArrayOfbyte) {
|
|
this.e.add(paramArrayOfbyte);
|
|
notify();
|
|
}
|
|
|
|
private void b(byte[] paramArrayOfbyte) {
|
|
if (!this.d)
|
|
return;
|
|
if (paramArrayOfbyte == null)
|
|
throw new IOException("TIMEOUT on wait for next buffer. Expected more buffers, Log file likely truncated.");
|
|
this.f = paramArrayOfbyte;
|
|
this.a = 0;
|
|
this.c = paramArrayOfbyte.length;
|
|
this.b = 0;
|
|
}
|
|
|
|
public synchronized void a(boolean paramBoolean) {
|
|
this.d = paramBoolean;
|
|
if (!paramBoolean)
|
|
notify();
|
|
}
|
|
|
|
public synchronized byte[] a() {
|
|
if (this.e.isEmpty() && this.d)
|
|
try {
|
|
wait(3000L);
|
|
} catch (InterruptedException interruptedException) {
|
|
Logger.getLogger(a.class.getName()).log(Level.SEVERE, (String)null, interruptedException);
|
|
}
|
|
byte[] arrayOfByte = null;
|
|
if (!this.e.isEmpty()) {
|
|
arrayOfByte = this.e.get(0);
|
|
this.e.remove(0);
|
|
} else if (this.d) {
|
|
Logger.getLogger(a.class.getName()).log(Level.WARNING, "TIMEOUT on wait for next buffer. Expected more buffers, did not get it in 3000 ms. Log file likely truncated.");
|
|
}
|
|
return arrayOfByte;
|
|
}
|
|
}
|
|
|
|
|
|
/* Location: /home/rewrich/Downloads/TunerStudioMS/TunerStudioMS/!/aI/a.class
|
|
* Java compiler version: 8 (52.0)
|
|
* JD-Core Version: 1.1.3
|
|
*/ |