class org.apache.qpid.proton.engine.impl.TransportOutputAdaptor extends java.lang.Object implements org.apache.qpid.proton.engine.impl.TransportOutput
{
private static final java.nio.ByteBuffer _emptyHead;
private final org.apache.qpid.proton.engine.impl.TransportOutputWriter _transportOutputWriter;
private final int _maxFrameSize;
private java.nio.ByteBuffer _outputBuffer;
private java.nio.ByteBuffer _head;
private boolean _output_done;
private boolean _head_closed;
private boolean _readOnlyHead;
void <init>(org.apache.qpid.proton.engine.impl.TransportOutputWriter, int, boolean)
{
int v, v;
org.apache.qpid.proton.engine.impl.TransportOutputAdaptor v;
org.apache.qpid.proton.engine.impl.TransportOutputWriter v;
boolean v;
v := @this: org.apache.qpid.proton.engine.impl.TransportOutputAdaptor;
v := @parameter: org.apache.qpid.proton.engine.impl.TransportOutputWriter;
v := @parameter: int;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer> = null;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head> = null;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _output_done> = 0;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _head_closed> = 0;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _readOnlyHead> = 1;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: org.apache.qpid.proton.engine.impl.TransportOutputWriter _transportOutputWriter> = v;
if v <= 0 goto label;
v = v;
goto label;
label:
v = 16384;
label:
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: int _maxFrameSize> = v;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _readOnlyHead> = v;
return;
}
public int pending()
{
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v;
boolean v, v, v;
org.apache.qpid.proton.engine.impl.TransportOutputWriter v;
org.apache.qpid.proton.engine.impl.TransportOutputAdaptor v;
v := @this: org.apache.qpid.proton.engine.impl.TransportOutputAdaptor;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _head_closed>;
if v == 0 goto label;
v = (int) -1;
return v;
label:
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
if v != null goto label;
specialinvoke v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: void init_buffers()>();
label:
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: org.apache.qpid.proton.engine.impl.TransportOutputWriter _transportOutputWriter>;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = interfaceinvoke v.<org.apache.qpid.proton.engine.impl.TransportOutputWriter: boolean writeInto(java.nio.ByteBuffer)>(v);
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _output_done> = v;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head>;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v != 0 goto label;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
v = <org.apache.qpid.proton.engine.impl.TransportImpl: int BUFFER_RELEASE_THRESHOLD>;
if v <= v goto label;
specialinvoke v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: void release_buffers()>();
label:
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _output_done>;
if v == 0 goto label;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
if v == null goto label;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v != 0 goto label;
label:
v = (int) -1;
return v;
label:
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
if v != null goto label;
v = 0;
goto label;
label:
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
label:
return v;
}
public java.nio.ByteBuffer head()
{
org.apache.qpid.proton.engine.impl.TransportOutputAdaptor v;
java.nio.ByteBuffer v, v;
v := @this: org.apache.qpid.proton.engine.impl.TransportOutputAdaptor;
virtualinvoke v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: int pending()>();
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head>;
if v == null goto label;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head>;
goto label;
label:
v = <org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _emptyHead>;
label:
return v;
}
public void pop(int)
{
java.nio.ByteBuffer v, v, v, v, v, v, v, v, v;
int v, v, v, v, v;
org.apache.qpid.proton.engine.impl.TransportOutputAdaptor v;
v := @this: org.apache.qpid.proton.engine.impl.TransportOutputAdaptor;
v := @parameter: int;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
if v == null goto label;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer compact()>();
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(0);
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head>;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
if v != 0 goto label;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
v = <org.apache.qpid.proton.engine.impl.TransportImpl: int BUFFER_RELEASE_THRESHOLD>;
if v <= v goto label;
specialinvoke v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: void release_buffers()>();
label:
return;
}
public void close_head()
{
org.apache.qpid.proton.engine.impl.TransportOutputAdaptor v;
org.apache.qpid.proton.engine.impl.TransportOutputWriter v;
v := @this: org.apache.qpid.proton.engine.impl.TransportOutputAdaptor;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _head_closed> = 1;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: org.apache.qpid.proton.engine.impl.TransportOutputWriter _transportOutputWriter>;
interfaceinvoke v.<org.apache.qpid.proton.engine.impl.TransportOutputWriter: void closed(org.apache.qpid.proton.engine.TransportException)>(null);
specialinvoke v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: void release_buffers()>();
return;
}
private void init_buffers()
{
java.nio.ByteBuffer v, v, v, v, v, v;
int v;
org.apache.qpid.proton.engine.impl.TransportOutputAdaptor v;
boolean v;
v := @this: org.apache.qpid.proton.engine.impl.TransportOutputAdaptor;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: int _maxFrameSize>;
v = staticinvoke <org.apache.qpid.proton.engine.impl.ByteBufferUtils: java.nio.ByteBuffer newWriteableBuffer(int)>(v);
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer> = v;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: boolean _readOnlyHead>;
if v == 0 goto label;
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer asReadOnlyBuffer()>();
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head> = v;
goto label;
label:
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer>;
v = virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer duplicate()>();
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head> = v;
label:
v = v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.Buffer limit(int)>(0);
return;
}
private void release_buffers()
{
org.apache.qpid.proton.engine.impl.TransportOutputAdaptor v;
v := @this: org.apache.qpid.proton.engine.impl.TransportOutputAdaptor;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _head> = null;
v.<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _outputBuffer> = null;
return;
}
static void <clinit>()
{
java.nio.ByteBuffer v, v;
v = staticinvoke <org.apache.qpid.proton.engine.impl.ByteBufferUtils: java.nio.ByteBuffer newReadableBuffer(int)>(0);
v = virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer asReadOnlyBuffer()>();
<org.apache.qpid.proton.engine.impl.TransportOutputAdaptor: java.nio.ByteBuffer _emptyHead> = v;
return;
}
}