abstract class org.apache.hc.core.http.impl.io.FrameOutputStream extends java.io.OutputStream
{
private final java.io.OutputStream outputStream;
private final byte[] cache;
private int cachePosition;
public void <init>(int, java.io.OutputStream)
{
java.io.OutputStream v;
byte[] v;
int v;
java.lang.Object v;
org.apache.hc.core.http.impl.io.FrameOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.FrameOutputStream;
v := @parameter: int;
v := @parameter: java.io.OutputStream;
specialinvoke v.<java.io.OutputStream: void <init>()>();
v = staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Output stream");
v.<org.apache.hc.core.http.impl.io.FrameOutputStream: java.io.OutputStream outputStream> = v;
v = newarray (byte)[v];
v.<org.apache.hc.core.http.impl.io.FrameOutputStream: byte[] cache> = v;
return;
}
protected abstract void write(java.nio.ByteBuffer, boolean, java.io.OutputStream) throws java.io.IOException;
private void flushCache(boolean) throws java.io.IOException
{
java.io.OutputStream v;
byte[] v;
int v, v;
java.nio.ByteBuffer v;
org.apache.hc.core.http.impl.io.FrameOutputStream v;
boolean v;
v := @this: org.apache.hc.core.http.impl.io.FrameOutputStream;
v := @parameter: boolean;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
if v <= 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: byte[] cache>;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[],int,int)>(v, 0, v);
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: java.io.OutputStream outputStream>;
virtualinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void write(java.nio.ByteBuffer,boolean,java.io.OutputStream)>(v, v, v);
v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition> = 0;
label:
return;
}
public void write(int) throws java.io.IOException
{
byte[] v, v;
int v, v, v, v, v, v;
org.apache.hc.core.http.impl.io.FrameOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.FrameOutputStream;
v := @parameter: int;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: byte[] cache>;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
v[v] = v;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
v = v + 1;
v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition> = v;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: byte[] cache>;
v = lengthof v;
if v != v goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void flushCache(boolean)>(0);
label:
return;
}
public void write(byte[]) throws java.io.IOException
{
int v;
byte[] v;
org.apache.hc.core.http.impl.io.FrameOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.FrameOutputStream;
v := @parameter: byte[];
v = lengthof v;
virtualinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void write(byte[],int,int)>(v, 0, v);
return;
}
public void write(byte[], int, int) throws java.io.IOException
{
java.io.OutputStream v;
byte[] v, v, v;
java.nio.ByteBuffer v;
int v, v, v, v, v, v, v, v;
org.apache.hc.core.http.impl.io.FrameOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.FrameOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: byte[] cache>;
v = lengthof v;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
v = v - v;
if v < v goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void flushCache(boolean)>(0);
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[],int,int)>(v, v, v);
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: java.io.OutputStream outputStream>;
virtualinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void write(java.nio.ByteBuffer,boolean,java.io.OutputStream)>(v, 0, v);
goto label;
label:
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: byte[] cache>;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
v = v + v;
v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition> = v;
label:
return;
}
public void flush() throws java.io.IOException
{
java.io.OutputStream v;
org.apache.hc.core.http.impl.io.FrameOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.FrameOutputStream;
specialinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void flushCache(boolean)>(0);
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: java.io.OutputStream outputStream>;
virtualinvoke v.<java.io.OutputStream: void flush()>();
return;
}
public void close() throws java.io.IOException
{
java.io.OutputStream v, v;
int v;
org.apache.hc.core.http.impl.io.FrameOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.FrameOutputStream;
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: int cachePosition>;
if v <= 0 goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void flushCache(boolean)>(1);
goto label;
label:
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: java.io.OutputStream outputStream>;
virtualinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void write(java.nio.ByteBuffer,boolean,java.io.OutputStream)>(null, 1, v);
label:
specialinvoke v.<org.apache.hc.core.http.impl.io.FrameOutputStream: void flushCache(boolean)>(1);
v = v.<org.apache.hc.core.http.impl.io.FrameOutputStream: java.io.OutputStream outputStream>;
virtualinvoke v.<java.io.OutputStream: void flush()>();
return;
}
}