public class org.apache.http.impl.io.SessionOutputBufferImpl extends java.lang.Object implements org.apache.http.io.SessionOutputBuffer, org.apache.http.io.BufferInfo
{
private static final byte[] CRLF;
private final org.apache.http.impl.io.HttpTransportMetricsImpl metrics;
private final org.apache.http.util.ByteArrayBuffer buffer;
private final int fragementSizeHint;
private final java.nio.charset.CharsetEncoder encoder;
private java.io.OutputStream outStream;
private java.nio.ByteBuffer bbuf;
public void <init>(org.apache.http.impl.io.HttpTransportMetricsImpl, int, int, java.nio.charset.CharsetEncoder)
{
java.nio.charset.CharsetEncoder v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v, v, v;
org.apache.http.impl.io.HttpTransportMetricsImpl v;
org.apache.http.util.ByteArrayBuffer v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: org.apache.http.impl.io.HttpTransportMetricsImpl;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.nio.charset.CharsetEncoder;
specialinvoke v.<java.lang.Object: void <init>()>();
staticinvoke <org.apache.http.util.Args: int positive(int,java.lang.String)>(v, "Buffer size");
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP transport metrcis");
v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.impl.io.HttpTransportMetricsImpl metrics> = v;
v = new org.apache.http.util.ByteArrayBuffer;
specialinvoke v.<org.apache.http.util.ByteArrayBuffer: void <init>(int)>(v);
v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer> = v;
if v < 0 goto label;
v = v;
goto label;
label:
v = 0;
label:
v.<org.apache.http.impl.io.SessionOutputBufferImpl: int fragementSizeHint> = v;
v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder> = v;
return;
}
public void <init>(org.apache.http.impl.io.HttpTransportMetricsImpl, int)
{
int v;
org.apache.http.impl.io.HttpTransportMetricsImpl v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: org.apache.http.impl.io.HttpTransportMetricsImpl;
v := @parameter: int;
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void <init>(org.apache.http.impl.io.HttpTransportMetricsImpl,int,int,java.nio.charset.CharsetEncoder)>(v, v, v, null);
return;
}
public void bind(java.io.OutputStream)
{
java.io.OutputStream v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.io.OutputStream;
v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.io.OutputStream outStream> = v;
return;
}
public boolean isBound()
{
java.io.OutputStream v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
boolean v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.io.OutputStream outStream>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int capacity()
{
int v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
org.apache.http.util.ByteArrayBuffer v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: int capacity()>();
return v;
}
public int length()
{
int v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
org.apache.http.util.ByteArrayBuffer v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: int length()>();
return v;
}
public int available()
{
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v, v, v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v = virtualinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: int capacity()>();
v = virtualinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: int length()>();
v = v - v;
return v;
}
private void streamWrite(byte[], int, int) throws java.io.IOException
{
java.io.OutputStream v, v;
byte[] v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v, v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.io.OutputStream outStream>;
staticinvoke <org.apache.http.util.Asserts: void notNull(java.lang.Object,java.lang.String)>(v, "Output stream");
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.io.OutputStream outStream>;
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, v, v);
return;
}
private void flushStream() throws java.io.IOException
{
java.io.OutputStream v, v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.io.OutputStream outStream>;
if v == null goto label;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.io.OutputStream outStream>;
virtualinvoke v.<java.io.OutputStream: void flush()>();
label:
return;
}
private void flushBuffer() throws java.io.IOException
{
byte[] v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v;
org.apache.http.impl.io.HttpTransportMetricsImpl v;
org.apache.http.util.ByteArrayBuffer v, v, v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: int length()>();
if v <= 0 goto label;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: byte[] buffer()>();
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void streamWrite(byte[],int,int)>(v, 0, v);
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: void clear()>();
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.impl.io.HttpTransportMetricsImpl metrics>;
virtualinvoke v.<org.apache.http.impl.io.HttpTransportMetricsImpl: void incrementBytesTransferred(long)>(v);
label:
return;
}
public void flush() throws java.io.IOException
{
org.apache.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void flushBuffer()>();
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void flushStream()>();
return;
}
public void write(byte[], int, int) throws java.io.IOException
{
byte[] v;
org.apache.http.impl.io.HttpTransportMetricsImpl v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v, v, v, v, v, v, v;
org.apache.http.util.ByteArrayBuffer v, v, v, v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
if v != null goto label;
return;
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: int fragementSizeHint>;
if v > v goto label;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: int capacity()>();
if v <= v goto label;
label:
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void flushBuffer()>();
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void streamWrite(byte[],int,int)>(v, v, v);
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.impl.io.HttpTransportMetricsImpl metrics>;
virtualinvoke v.<org.apache.http.impl.io.HttpTransportMetricsImpl: void incrementBytesTransferred(long)>(v);
goto label;
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: int capacity()>();
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: int length()>();
v = v - v;
if v <= v goto label;
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void flushBuffer()>();
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: void append(byte[],int,int)>(v, v, v);
label:
return;
}
public void write(byte[]) throws java.io.IOException
{
int v;
byte[] v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: byte[];
if v != null goto label;
return;
label:
v = lengthof v;
virtualinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void write(byte[],int,int)>(v, 0, v);
return;
}
public void write(int) throws java.io.IOException
{
java.io.OutputStream v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v, v;
boolean v;
org.apache.http.util.ByteArrayBuffer v, v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: int;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: int fragementSizeHint>;
if v <= 0 goto label;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: boolean isFull()>();
if v == 0 goto label;
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void flushBuffer()>();
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: void append(int)>(v);
goto label;
label:
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void flushBuffer()>();
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.io.OutputStream outStream>;
virtualinvoke v.<java.io.OutputStream: void write(int)>(v);
label:
return;
}
public void writeLine(java.lang.String) throws java.io.IOException
{
byte[] v;
java.nio.CharBuffer v;
char v;
java.nio.charset.CharsetEncoder v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v, v, v;
java.lang.String v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.lang.String;
if v != null goto label;
return;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
if v != null goto label;
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
virtualinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void write(int)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.nio.CharBuffer: java.nio.CharBuffer wrap(java.lang.CharSequence)>(v);
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void writeEncoded(java.nio.CharBuffer)>(v);
label:
v = <org.apache.http.impl.io.SessionOutputBufferImpl: byte[] CRLF>;
virtualinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void write(byte[])>(v);
return;
}
public void writeLine(org.apache.http.util.CharArrayBuffer) throws java.io.IOException
{
byte[] v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
int v, v, v, v, v, v, v;
boolean v;
org.apache.http.util.ByteArrayBuffer v, v, v, v;
java.nio.CharBuffer v;
org.apache.http.util.CharArrayBuffer v;
java.nio.charset.CharsetEncoder v;
char[] v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: org.apache.http.util.CharArrayBuffer;
if v != null goto label;
return;
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
if v != null goto label;
v = 0;
v = virtualinvoke v.<org.apache.http.util.CharArrayBuffer: int length()>();
label:
if v <= 0 goto label;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: int capacity()>();
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.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.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: void append(org.apache.http.util.CharArrayBuffer,int,int)>(v, v, v);
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.util.ByteArrayBuffer buffer>;
v = virtualinvoke v.<org.apache.http.util.ByteArrayBuffer: boolean isFull()>();
if v == 0 goto label;
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void flushBuffer()>();
label:
v = v + v;
v = v - v;
goto label;
label:
v = virtualinvoke v.<org.apache.http.util.CharArrayBuffer: char[] buffer()>();
v = virtualinvoke v.<org.apache.http.util.CharArrayBuffer: int length()>();
v = staticinvoke <java.nio.CharBuffer: java.nio.CharBuffer wrap(char[],int,int)>(v, 0, v);
specialinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void writeEncoded(java.nio.CharBuffer)>(v);
label:
v = <org.apache.http.impl.io.SessionOutputBufferImpl: byte[] CRLF>;
virtualinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void write(byte[])>(v);
return;
}
private void writeEncoded(java.nio.CharBuffer) throws java.io.IOException
{
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.http.impl.io.SessionOutputBufferImpl v;
boolean v, v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.nio.CharBuffer;
v = virtualinvoke v.<java.nio.CharBuffer: boolean hasRemaining()>();
if v != 0 goto label;
return;
label:
v = v.<org.apache.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.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf> = v;
label:
v = v.<org.apache.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.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
v = v.<org.apache.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.http.impl.io.SessionOutputBufferImpl: void handleEncodingResult(java.nio.charset.CoderResult)>(v);
goto label;
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.nio.charset.CharsetEncoder encoder>;
v = v.<org.apache.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.http.impl.io.SessionOutputBufferImpl: void handleEncodingResult(java.nio.charset.CoderResult)>(v);
v = v.<org.apache.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) throws java.io.IOException
{
java.nio.ByteBuffer v, v, v, v;
java.nio.charset.CoderResult v;
byte v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
boolean v, v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v := @parameter: java.nio.charset.CoderResult;
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.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
label:
v = v.<org.apache.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.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
v = virtualinvoke v.<java.nio.ByteBuffer: byte get()>();
virtualinvoke v.<org.apache.http.impl.io.SessionOutputBufferImpl: void write(int)>(v);
goto label;
label:
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: java.nio.ByteBuffer bbuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer compact()>();
return;
}
public org.apache.http.io.HttpTransportMetrics getMetrics()
{
org.apache.http.impl.io.HttpTransportMetricsImpl v;
org.apache.http.impl.io.SessionOutputBufferImpl v;
v := @this: org.apache.http.impl.io.SessionOutputBufferImpl;
v = v.<org.apache.http.impl.io.SessionOutputBufferImpl: org.apache.http.impl.io.HttpTransportMetricsImpl metrics>;
return v;
}
static void <clinit>()
{
byte[] v;
v = newarray (byte)[2];
v[0] = 13;
v[1] = 10;
<org.apache.http.impl.io.SessionOutputBufferImpl: byte[] CRLF> = v;
return;
}
}