public class org.apache.http.impl.io.ChunkedOutputStream extends java.io.OutputStream
{
private final org.apache.http.io.SessionOutputBuffer out;
private final byte[] cache;
private int cachePosition;
private boolean wroteLastChunk;
private boolean closed;
public void <init>(org.apache.http.io.SessionOutputBuffer, int) throws java.io.IOException
{
int v;
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v := @parameter: org.apache.http.io.SessionOutputBuffer;
v := @parameter: int;
specialinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void <init>(int,org.apache.http.io.SessionOutputBuffer)>(v, v);
return;
}
public void <init>(org.apache.http.io.SessionOutputBuffer) throws java.io.IOException
{
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v := @parameter: org.apache.http.io.SessionOutputBuffer;
specialinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void <init>(int,org.apache.http.io.SessionOutputBuffer)>(2048, v);
return;
}
public void <init>(int, org.apache.http.io.SessionOutputBuffer)
{
byte[] v;
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v;
int v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v := @parameter: int;
v := @parameter: org.apache.http.io.SessionOutputBuffer;
specialinvoke v.<java.io.OutputStream: void <init>()>();
v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition> = 0;
v.<org.apache.http.impl.io.ChunkedOutputStream: boolean wroteLastChunk> = 0;
v.<org.apache.http.impl.io.ChunkedOutputStream: boolean closed> = 0;
v = newarray (byte)[v];
v.<org.apache.http.impl.io.ChunkedOutputStream: byte[] cache> = v;
v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out> = v;
return;
}
protected void flushCache() throws java.io.IOException
{
byte[] v;
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v, v, v;
int v, v, v;
java.lang.String v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
if v <= 0 goto label;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void writeLine(java.lang.String)>(v);
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void write(byte[],int,int)>(v, 0, v);
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void writeLine(java.lang.String)>("");
v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition> = 0;
label:
return;
}
protected void flushCacheWithAppend(byte[], int, int) throws java.io.IOException
{
byte[] v, v;
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v, v, v, v;
int v, v, v, v, v;
java.lang.String v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v + v;
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void writeLine(java.lang.String)>(v);
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void write(byte[],int,int)>(v, 0, v);
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void write(byte[],int,int)>(v, v, v);
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void writeLine(java.lang.String)>("");
v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition> = 0;
return;
}
protected void writeClosingChunk() throws java.io.IOException
{
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v, v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void writeLine(java.lang.String)>("0");
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void writeLine(java.lang.String)>("");
return;
}
public void finish() throws java.io.IOException
{
org.apache.http.impl.io.ChunkedOutputStream v;
boolean v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: boolean wroteLastChunk>;
if v != 0 goto label;
virtualinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void flushCache()>();
virtualinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void writeClosingChunk()>();
v.<org.apache.http.impl.io.ChunkedOutputStream: boolean wroteLastChunk> = 1;
label:
return;
}
public void write(int) throws java.io.IOException
{
byte[] v, v;
java.io.IOException v;
org.apache.http.impl.io.ChunkedOutputStream v;
int v, v, v, v, v, v;
boolean v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v := @parameter: int;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: boolean closed>;
if v == 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Attempted write to closed stream.");
throw v;
label:
v = v.<org.apache.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
v[v] = v;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v + 1;
v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition> = v;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = lengthof v;
if v != v goto label;
virtualinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void flushCache()>();
label:
return;
}
public void write(byte[]) throws java.io.IOException
{
int v;
byte[] v;
org.apache.http.impl.io.ChunkedOutputStream v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v := @parameter: byte[];
v = lengthof v;
virtualinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void write(byte[],int,int)>(v, 0, v);
return;
}
public void write(byte[], int, int) throws java.io.IOException
{
byte[] v, v, v;
java.io.IOException v;
org.apache.http.impl.io.ChunkedOutputStream v;
int v, v, v, v, v, v, v, v;
boolean v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: boolean closed>;
if v == 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Attempted write to closed stream.");
throw v;
label:
v = v.<org.apache.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = lengthof v;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v - v;
if v < v goto label;
virtualinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void flushCacheWithAppend(byte[],int,int)>(v, v, v);
goto label;
label:
v = v.<org.apache.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: 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.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v + v;
v.<org.apache.http.impl.io.ChunkedOutputStream: int cachePosition> = v;
label:
return;
}
public void flush() throws java.io.IOException
{
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
virtualinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void flushCache()>();
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void flush()>();
return;
}
public void close() throws java.io.IOException
{
org.apache.http.impl.io.ChunkedOutputStream v;
org.apache.http.io.SessionOutputBuffer v;
boolean v;
v := @this: org.apache.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.http.impl.io.ChunkedOutputStream: boolean closed>;
if v != 0 goto label;
v.<org.apache.http.impl.io.ChunkedOutputStream: boolean closed> = 1;
virtualinvoke v.<org.apache.http.impl.io.ChunkedOutputStream: void finish()>();
v = v.<org.apache.http.impl.io.ChunkedOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void flush()>();
label:
return;
}
}