public class org.apache.hc.core.http.impl.io.ChunkedOutputStream extends java.io.OutputStream
{
private final org.apache.hc.core.http.io.SessionOutputBuffer buffer;
private final java.io.OutputStream outputStream;
private final byte[] cache;
private int cachePosition;
private boolean wroteLastChunk;
private boolean closed;
private final org.apache.hc.core.util.CharArrayBuffer lineBuffer;
private final org.apache.hc.core.function.Supplier trailerSupplier;
public void <init>(org.apache.hc.core.http.io.SessionOutputBuffer, java.io.OutputStream, byte[], org.apache.hc.core.function.Supplier)
{
java.io.OutputStream v;
byte[] v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.function.Supplier v;
org.apache.hc.core.http.io.SessionOutputBuffer v;
org.apache.hc.core.util.CharArrayBuffer v;
java.lang.Object v, v, v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v := @parameter: org.apache.hc.core.http.io.SessionOutputBuffer;
v := @parameter: java.io.OutputStream;
v := @parameter: byte[];
v := @parameter: org.apache.hc.core.function.Supplier;
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, "Session output buffer");
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer> = v;
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.ChunkedOutputStream: java.io.OutputStream outputStream> = v;
v = staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Chunk cache");
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: byte[] cache> = v;
v = new org.apache.hc.core.util.CharArrayBuffer;
specialinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void <init>(int)>(32);
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer> = v;
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.function.Supplier trailerSupplier> = v;
return;
}
public void <init>(org.apache.hc.core.http.io.SessionOutputBuffer, java.io.OutputStream, int, org.apache.hc.core.function.Supplier)
{
java.io.OutputStream v;
byte[] v;
org.apache.hc.core.http.io.SessionOutputBuffer v;
int v, v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.function.Supplier v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v := @parameter: org.apache.hc.core.http.io.SessionOutputBuffer;
v := @parameter: java.io.OutputStream;
v := @parameter: int;
v := @parameter: org.apache.hc.core.function.Supplier;
if v <= 0 goto label;
v = v;
goto label;
label:
v = 8192;
label:
v = newarray (byte)[v];
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void <init>(org.apache.hc.core.http.io.SessionOutputBuffer,java.io.OutputStream,byte[],org.apache.hc.core.function.Supplier)>(v, v, v, v);
return;
}
public void <init>(org.apache.hc.core.http.io.SessionOutputBuffer, java.io.OutputStream, int)
{
java.io.OutputStream v;
org.apache.hc.core.http.io.SessionOutputBuffer v;
int v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v := @parameter: org.apache.hc.core.http.io.SessionOutputBuffer;
v := @parameter: java.io.OutputStream;
v := @parameter: int;
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void <init>(org.apache.hc.core.http.io.SessionOutputBuffer,java.io.OutputStream,int,org.apache.hc.core.function.Supplier)>(v, v, v, null);
return;
}
private void flushCache() throws java.io.IOException
{
byte[] v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.http.io.SessionOutputBuffer v, v, v;
int v, v, v;
java.lang.String v;
java.io.OutputStream v, v, v;
org.apache.hc.core.util.CharArrayBuffer v, v, v, v, v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
if v <= 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void append(java.lang.String)>(v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void write(byte[],int,int,java.io.OutputStream)>(v, 0, v, v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition> = 0;
label:
return;
}
private void flushCacheWithAppend(byte[], int, int) throws java.io.IOException
{
byte[] v, v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.http.io.SessionOutputBuffer v, v, v, v;
int v, v, v, v, v;
java.lang.String v;
java.io.OutputStream v, v, v, v;
org.apache.hc.core.util.CharArrayBuffer v, v, v, v, v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v + v;
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void append(java.lang.String)>(v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void write(byte[],int,int,java.io.OutputStream)>(v, 0, v, v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void write(byte[],int,int,java.io.OutputStream)>(v, v, v, v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition> = 0;
return;
}
private void writeClosingChunk() throws java.io.IOException
{
java.io.OutputStream v, v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.http.io.SessionOutputBuffer v, v;
org.apache.hc.core.util.CharArrayBuffer v, v, v, v, v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void append(char)>(48);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void writeTrailers()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
return;
}
private void writeTrailers() throws java.io.IOException
{
org.apache.hc.core.http.message.BasicLineFormatter v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.function.Supplier v, v;
org.apache.hc.core.http.io.SessionOutputBuffer v, v;
int v, v;
boolean v;
java.io.OutputStream v, v;
org.apache.hc.core.http.Header v;
java.util.List v;
org.apache.hc.core.util.CharArrayBuffer v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.function.Supplier trailerSupplier>;
if v == null goto label;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.function.Supplier trailerSupplier>;
v = interfaceinvoke v.<org.apache.hc.core.function.Supplier: java.lang.Object get()>();
goto label;
label:
v = null;
label:
v = v;
if v == null goto label;
v = 0;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = v instanceof org.apache.hc.core.http.FormattedHeader;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.hc.core.http.FormattedHeader: org.apache.hc.core.util.CharArrayBuffer getBuffer()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
goto label;
label:
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: void clear()>();
v = <org.apache.hc.core.http.message.BasicLineFormatter: org.apache.hc.core.http.message.BasicLineFormatter INSTANCE>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
virtualinvoke v.<org.apache.hc.core.http.message.BasicLineFormatter: void formatHeader(org.apache.hc.core.util.CharArrayBuffer,org.apache.hc.core.http.Header)>(v, v);
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.util.CharArrayBuffer lineBuffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void writeLine(org.apache.hc.core.util.CharArrayBuffer,java.io.OutputStream)>(v, v);
label:
v = v + 1;
goto label;
label:
return;
}
public void finish() throws java.io.IOException
{
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
boolean v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: boolean wroteLastChunk>;
if v != 0 goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void flushCache()>();
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void writeClosingChunk()>();
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: boolean wroteLastChunk> = 1;
label:
return;
}
public void write(int) throws java.io.IOException
{
byte[] v, v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.http.StreamClosedException v;
int v, v, v, v, v, v;
boolean v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v := @parameter: int;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: boolean closed>;
if v == 0 goto label;
v = new org.apache.hc.core.http.StreamClosedException;
specialinvoke v.<org.apache.hc.core.http.StreamClosedException: void <init>()>();
throw v;
label:
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v[v] = v;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v + 1;
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition> = v;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = lengthof v;
if v != v goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void flushCache()>();
label:
return;
}
public void write(byte[]) throws java.io.IOException
{
int v;
byte[] v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v := @parameter: byte[];
v = lengthof v;
virtualinvoke v.<org.apache.hc.core.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;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
org.apache.hc.core.http.StreamClosedException v;
int v, v, v, v, v, v, v, v;
boolean v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: boolean closed>;
if v == 0 goto label;
v = new org.apache.hc.core.http.StreamClosedException;
specialinvoke v.<org.apache.hc.core.http.StreamClosedException: void <init>()>();
throw v;
label:
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = lengthof v;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v - v;
if v < v goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void flushCacheWithAppend(byte[],int,int)>(v, v, v);
goto label;
label:
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: byte[] cache>;
v = v.<org.apache.hc.core.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.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition>;
v = v + v;
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: int cachePosition> = v;
label:
return;
}
public void flush() throws java.io.IOException
{
java.io.OutputStream v;
org.apache.hc.core.http.io.SessionOutputBuffer v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
specialinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void flushCache()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void flush(java.io.OutputStream)>(v);
return;
}
public void close() throws java.io.IOException
{
java.io.OutputStream v;
org.apache.hc.core.http.io.SessionOutputBuffer v;
org.apache.hc.core.http.impl.io.ChunkedOutputStream v;
boolean v;
v := @this: org.apache.hc.core.http.impl.io.ChunkedOutputStream;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: boolean closed>;
if v != 0 goto label;
v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: boolean closed> = 1;
virtualinvoke v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: void finish()>();
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: org.apache.hc.core.http.io.SessionOutputBuffer buffer>;
v = v.<org.apache.hc.core.http.impl.io.ChunkedOutputStream: java.io.OutputStream outputStream>;
interfaceinvoke v.<org.apache.hc.core.http.io.SessionOutputBuffer: void flush(java.io.OutputStream)>(v);
label:
return;
}
}