public class org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel extends java.lang.Object implements java.nio.channels.ScatteringByteChannel
{
final org.fusesource.hawtdispatch.transport.SslProtocolCodec this$0;
public void <init>(org.fusesource.hawtdispatch.transport.SslProtocolCodec)
{
org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec v;
v := @this: org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel;
v := @parameter: org.fusesource.hawtdispatch.transport.SslProtocolCodec;
v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: org.fusesource.hawtdispatch.transport.SslProtocolCodec this$0> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public int read(java.nio.ByteBuffer) throws java.io.IOException
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v;
java.nio.ByteBuffer v;
javax.net.ssl.SSLEngine v;
int v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec v, v, v;
v := @this: org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel;
v := @parameter: java.nio.ByteBuffer;
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: org.fusesource.hawtdispatch.transport.SslProtocolCodec this$0>;
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec: javax.net.ssl.SSLEngine engine>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v == v goto label;
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: org.fusesource.hawtdispatch.transport.SslProtocolCodec this$0>;
virtualinvoke v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec: void handshake()>();
label:
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: org.fusesource.hawtdispatch.transport.SslProtocolCodec this$0>;
v = specialinvoke v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec: int secure_read(java.nio.ByteBuffer)>(v);
return v;
}
public boolean isOpen()
{
java.nio.channels.ReadableByteChannel v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel;
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: org.fusesource.hawtdispatch.transport.SslProtocolCodec this$0>;
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec: java.nio.channels.ReadableByteChannel readChannel>;
v = interfaceinvoke v.<java.nio.channels.ReadableByteChannel: boolean isOpen()>();
return v;
}
public void close() throws java.io.IOException
{
org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel v;
java.nio.channels.ReadableByteChannel v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec v;
v := @this: org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel;
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: org.fusesource.hawtdispatch.transport.SslProtocolCodec this$0>;
v = v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec: java.nio.channels.ReadableByteChannel readChannel>;
interfaceinvoke v.<java.nio.channels.ReadableByteChannel: void close()>();
return;
}
public long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException
{
java.lang.IndexOutOfBoundsException v;
java.nio.ByteBuffer[] v;
long v;
java.nio.ByteBuffer v;
int v, v, v, v, v, v, v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel v;
boolean v, v;
v := @this: org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
v = v + v;
v = lengthof v;
if v > v goto label;
if v < 0 goto label;
if v >= 0 goto label;
label:
v = new java.lang.IndexOutOfBoundsException;
specialinvoke v.<java.lang.IndexOutOfBoundsException: void <init>()>();
throw v;
label:
v = 0L;
v = 0;
label:
if v >= v goto label;
v = v + v;
v = v[v];
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = virtualinvoke v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: int read(java.nio.ByteBuffer)>(v);
v = v + v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
return v;
label:
v = v + 1;
goto label;
label:
return v;
}
public long read(java.nio.ByteBuffer[]) throws java.io.IOException
{
java.nio.ByteBuffer[] v;
int v;
org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel v;
long v;
v := @this: org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel;
v := @parameter: java.nio.ByteBuffer[];
v = lengthof v;
v = virtualinvoke v.<org.fusesource.hawtdispatch.transport.SslProtocolCodec$SSLReadChannel: long read(java.nio.ByteBuffer[],int,int)>(v, 0, v);
return v;
}
}