public class org.apache.hc.core.http.impl.io.SessionOutputBufferImpl extends java.lang.Object implements org.apache.hc.core.http.io.SessionOutputBuffer
{
private static final byte[] CRLF;
private final org.apache.hc.core.http.impl.BasicHttpTransportMetrics metrics;
private final org.apache.hc.core.util.ByteArrayBuffer buffer;
private final int fragmentSizeHint;
private final java.nio.charset.CharsetEncoder encoder;
private java.nio.ByteBuffer bbuf;
public void <init>(org.apache.hc.core.http.impl.BasicHttpTransportMetrics, int, int, java.nio.charset.CharsetEncoder)
{
org.apache.hc.core.util.ByteArrayBuffer v;
java.nio.charset.CharsetEncoder v;
int v, v, v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
org.apache.hc.core.http.impl.BasicHttpTransportMetrics v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: org.apache.hc.core.http.impl.BasicHttpTransportMetrics;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.nio.charset.CharsetEncoder;
specialinvoke v.<java.lang.Object: void <init>()>();
staticinvoke <org.apache.hc.core.util.Args: int positive(int,java.lang.String)>(v, "Buffer size");
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP transport metrics");
v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.http.impl.BasicHttpTransportMetrics metrics> = v;
v = new org.apache.hc.core.util.ByteArrayBuffer;
specialinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void <init>(int)>(v);
v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer> = v;
if v < 0 goto label;
v = v;
goto label;
label:
v = v;
label:
v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: int fragmentSizeHint> = v;
v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder> = v;
return;
}
public void <init>(int)
{
int v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
org.apache.hc.core.http.impl.BasicHttpTransportMetrics v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: int;
v = new org.apache.hc.core.http.impl.BasicHttpTransportMetrics;
specialinvoke v.<org.apache.hc.core.http.impl.BasicHttpTransportMetrics: void <init>()>();
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void <init>(org.apache.hc.core.http.impl.BasicHttpTransportMetrics,int,int,java.nio.charset.CharsetEncoder)>(v, v, v, null);
return;
}
public void <init>(int, java.nio.charset.CharsetEncoder)
{
java.nio.charset.CharsetEncoder v;
int v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
org.apache.hc.core.http.impl.BasicHttpTransportMetrics v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: int;
v := @parameter: java.nio.charset.CharsetEncoder;
v = new org.apache.hc.core.http.impl.BasicHttpTransportMetrics;
specialinvoke v.<org.apache.hc.core.http.impl.BasicHttpTransportMetrics: void <init>()>();
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void <init>(org.apache.hc.core.http.impl.BasicHttpTransportMetrics,int,int,java.nio.charset.CharsetEncoder)>(v, v, v, v);
return;
}
public int capacity()
{
int v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
org.apache.hc.core.util.ByteArrayBuffer v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int capacity()>();
return v;
}
public int length()
{
int v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
org.apache.hc.core.util.ByteArrayBuffer v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
return v;
}
public int available()
{
int v, v, v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v = virtualinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: int capacity()>();
v = virtualinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: int length()>();
v = v - v;
return v;
}
private void flushBuffer(java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
byte[] v;
org.apache.hc.core.http.impl.BasicHttpTransportMetrics v;
org.apache.hc.core.util.ByteArrayBuffer v, v, v;
int v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.io.OutputStream;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
if v <= 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: byte[] array()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, 0, v);
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.http.impl.BasicHttpTransportMetrics metrics>;
virtualinvoke v.<org.apache.hc.core.http.impl.BasicHttpTransportMetrics: void incrementBytesTransferred(long)>(v);
label:
return;
}
public void flush(java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.io.OutputStream;
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Output stream");
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void flushBuffer(java.io.OutputStream)>(v);
virtualinvoke v.<java.io.OutputStream: void flush()>();
return;
}
public void write(byte[], int, int, java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
byte[] v;
org.apache.hc.core.http.impl.BasicHttpTransportMetrics v;
org.apache.hc.core.util.ByteArrayBuffer v, v, v, v;
int v, v, v, v, v, v, v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.io.OutputStream;
if v != null goto label;
return;
label:
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Output stream");
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: int fragmentSizeHint>;
if v > v goto label;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int capacity()>();
if v <= v goto label;
label:
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void flushBuffer(java.io.OutputStream)>(v);
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, v, v);
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.http.impl.BasicHttpTransportMetrics metrics>;
virtualinvoke v.<org.apache.hc.core.http.impl.BasicHttpTransportMetrics: void incrementBytesTransferred(long)>(v);
goto label;
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int capacity()>();
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
v = v - v;
if v <= v goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void flushBuffer(java.io.OutputStream)>(v);
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(byte[],int,int)>(v, v, v);
label:
return;
}
public void write(byte[], java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
byte[] v;
int v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: byte[];
v := @parameter: java.io.OutputStream;
if v != null goto label;
return;
label:
v = lengthof v;
virtualinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void write(byte[],int,int,java.io.OutputStream)>(v, 0, v, v);
return;
}
public void write(int, java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
org.apache.hc.core.util.ByteArrayBuffer v, v;
int v, v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
boolean v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: int;
v := @parameter: java.io.OutputStream;
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Output stream");
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: int fragmentSizeHint>;
if v <= 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: boolean isFull()>();
if v == 0 goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void flushBuffer(java.io.OutputStream)>(v);
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(int)>(v);
goto label;
label:
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void flushBuffer(java.io.OutputStream)>(v);
virtualinvoke v.<java.io.OutputStream: void write(int)>(v);
label:
return;
}
public void writeLine(org.apache.hc.core.util.CharArrayBuffer, java.io.OutputStream) throws java.io.IOException
{
byte[] v;
org.apache.hc.core.util.ByteArrayBuffer v, v, v, v;
int v, v, v, v, v, v, v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
boolean v;
java.io.OutputStream v;
java.nio.CharBuffer v;
org.apache.hc.core.util.CharArrayBuffer v;
java.nio.charset.CharsetEncoder v;
char[] v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: org.apache.hc.core.util.CharArrayBuffer;
v := @parameter: java.io.OutputStream;
if v != null goto label;
return;
label:
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Output stream");
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
if v != null goto label;
v = 0;
v = virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: int length()>();
label:
if v <= 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int capacity()>();
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
v = v - v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
if v <= 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(org.apache.hc.core.util.CharArrayBuffer,int,int)>(v, v, v);
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: boolean isFull()>();
if v == 0 goto label;
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void flushBuffer(java.io.OutputStream)>(v);
label:
v = v + v;
v = v - v;
goto label;
label:
v = virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: char[] array()>();
v = virtualinvoke v.<org.apache.hc.core.util.CharArrayBuffer: int length()>();
v = staticinvoke <java.nio.CharBuffer: java.nio.CharBuffer wrap(char[],int,int)>(v, 0, v);
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void writeEncoded(java.nio.CharBuffer,java.io.OutputStream)>(v, v);
label:
v = <org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: byte[] CRLF>;
virtualinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void write(byte[],java.io.OutputStream)>(v, v);
return;
}
private void writeEncoded(java.nio.CharBuffer, java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
java.nio.CharBuffer v;
java.nio.ByteBuffer v, v, v, v, v;
java.nio.charset.CoderResult v, v;
java.nio.charset.CharsetEncoder v, v, v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
boolean v, v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.nio.CharBuffer;
v := @parameter: java.io.OutputStream;
v = virtualinvoke v.<java.nio.CharBuffer: boolean hasRemaining()>();
if v != 0 goto label;
return;
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
if v != null goto label;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(1024);
v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf> = v;
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CharsetEncoder reset()>();
label:
v = virtualinvoke v.<java.nio.CharBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CoderResult encode(java.nio.CharBuffer,java.nio.ByteBuffer,boolean)>(v, v, 1);
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void handleEncodingResult(java.nio.charset.CoderResult,java.io.OutputStream)>(v, v);
goto label;
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CoderResult flush(java.nio.ByteBuffer)>(v);
specialinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void handleEncodingResult(java.nio.charset.CoderResult,java.io.OutputStream)>(v, v);
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
return;
}
private void handleEncodingResult(java.nio.charset.CoderResult, java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
java.nio.ByteBuffer v, v, v, v;
java.nio.charset.CoderResult v;
byte v;
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
boolean v, v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.nio.charset.CoderResult;
v := @parameter: java.io.OutputStream;
v = virtualinvoke v.<java.nio.charset.CoderResult: boolean isError()>();
if v == 0 goto label;
virtualinvoke v.<java.nio.charset.CoderResult: void throwException()>();
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
v = virtualinvoke v.<java.nio.ByteBuffer: byte get()>();
virtualinvoke v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: void write(int,java.io.OutputStream)>(v, v);
goto label;
label:
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer compact()>();
return;
}
public org.apache.hc.core.http.io.HttpTransportMetrics getMetrics()
{
org.apache.hc.core.http.impl.io.SessionOutputBufferImpl v;
org.apache.hc.core.http.impl.BasicHttpTransportMetrics v;
v := @this: org.apache.hc.core.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: org.apache.hc.core.http.impl.BasicHttpTransportMetrics metrics>;
return v;
}
static void <clinit>()
{
byte[] v;
v = newarray (byte)[2];
v[0] = 13;
v[1] = 10;
<org.apache.hc.core.http.impl.io.SessionOutputBufferImpl: byte[] CRLF> = v;
return;
}
}