public abstract class org.fusesource.hawtdispatch.transport.AbstractProtocolCodec extends java.lang.Object implements org.fusesource.hawtdispatch.transport.ProtocolCodec { protected org.fusesource.hawtdispatch.util.BufferPools bufferPools; protected org.fusesource.hawtdispatch.util.BufferPool writeBufferPool; protected org.fusesource.hawtdispatch.util.BufferPool readBufferPool; protected int writeBufferSize; protected long writeCounter; protected java.nio.channels.GatheringByteChannel writeChannel; protected org.fusesource.hawtbuf.DataByteArrayOutputStream nextWriteBuffer; protected long lastWriteIoSize; protected java.util.LinkedList writeBuffer; private long writeBufferRemaining; protected long readCounter; protected int readBufferSize; protected java.nio.channels.ReadableByteChannel readChannel; protected java.nio.ByteBuffer readBuffer; protected java.nio.ByteBuffer directReadBuffer; protected int readEnd; protected int readStart; protected int lastReadIoSize; protected org.fusesource.hawtdispatch.transport.AbstractProtocolCodec$Action nextDecodeAction; static final boolean $assertionsDisabled; public void () { java.util.LinkedList v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; specialinvoke v.()>(); v. = 65536; v. = 0L; v. = null; v. = 0L; v = new java.util.LinkedList; specialinvoke v.()>(); v. = v; v. = 0L; v. = 0L; v. = 65536; v. = null; v. = null; return; } public void setTransport(org.fusesource.hawtdispatch.transport.Transport) { org.fusesource.hawtdispatch.util.BufferPools v, v, v; org.fusesource.hawtdispatch.util.BufferPool v, v; boolean v, v, v, v; java.net.Socket v, v, v, v; java.net.SocketException v; org.fusesource.hawtdispatch.transport.Transport v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v, v, v, v, v, v, v, v, v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec$Action v, v; java.nio.channels.ReadableByteChannel v, v, v; java.nio.channels.WritableByteChannel v; java.nio.channels.GatheringByteChannel v, v, v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: org.fusesource.hawtdispatch.transport.Transport; v = interfaceinvoke v.(); v. = v; v = interfaceinvoke v.(); v. = v; v = v.; if v != null goto label; v = virtualinvoke v.(); v. = v; label: v = v instanceof org.fusesource.hawtdispatch.transport.TcpTransport; if v == 0 goto label; v = virtualinvoke v.(); v. = v; v = virtualinvoke v.(); v. = v; goto label; label: v = v instanceof org.fusesource.hawtdispatch.transport.UdpTransport; if v == 0 goto label; v = virtualinvoke v.(); v. = v; v = virtualinvoke v.(); v. = v; goto label; label: v = v.; v = v instanceof java.nio.channels.SocketChannel; if v == 0 goto label; v = v.; v = virtualinvoke v.(); v = virtualinvoke v.(); v. = v; v = v.; v = virtualinvoke v.(); v = virtualinvoke v.(); v. = v; goto label; label: v = v.; v = v instanceof org.fusesource.hawtdispatch.transport.SslTransport$SSLChannel; if v == 0 goto label; v = v.; v = virtualinvoke v.(); v = virtualinvoke v.(); v. = v; v = v.; v = virtualinvoke v.(); v = virtualinvoke v.(); v. = v; label: goto label; label: v := @caughtexception; label: v = v.; if v == null goto label; v = v.; v = v.; v = virtualinvoke v.(v); v. = v; v = v.; v = v.; v = virtualinvoke v.(v); v. = v; label: return; catch java.net.SocketException from label to label with label; } public int getReadBufferSize() { int v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; return v; } public int getWriteBufferSize() { int v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; return v; } public boolean full() { byte v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v; long v; boolean v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; v = v.; v = v cmp v; if v < 0 goto label; v = 1; goto label; label: v = 0; label: return v; } public boolean isEmpty() { byte v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; org.fusesource.hawtbuf.DataByteArrayOutputStream v, v; int v; long v; boolean v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; v = v cmp 0L; if v != 0 goto label; v = v.; if v == null goto label; v = v.; v = virtualinvoke v.(); if v != 0 goto label; label: v = 1; goto label; label: v = 0; label: return v; } public long getWriteCounter() { long v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; return v; } public long getLastWriteSize() { long v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; return v; } protected abstract void encode(java.lang.Object) throws java.io.IOException; public org.fusesource.hawtdispatch.transport.ProtocolCodec$BufferState write(java.lang.Object) throws java.io.IOException { org.fusesource.hawtbuf.DataByteArrayOutputStream v, v, v; org.fusesource.hawtdispatch.transport.ProtocolCodec$BufferState v, v, v; byte v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v; java.lang.Object v; boolean v, v; double v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: java.lang.Object; v = virtualinvoke v.(); if v == 0 goto label; v = ; return v; label: v = virtualinvoke v.(); v = v.; if v != null goto label; v = specialinvoke v.(); v. = v; label: virtualinvoke v.(v); v = v.; v = virtualinvoke v.(); v = v.; v = v * 0.75; v = v cmpl v; if v < 0 goto label; virtualinvoke v.(); label: if v == 0 goto label; v = ; return v; label: v = ; return v; } private org.fusesource.hawtbuf.DataByteArrayOutputStream allocateNextWriteBuffer() { org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; org.fusesource.hawtbuf.DataByteArrayOutputStream v; int v; org.fusesource.hawtdispatch.util.BufferPool v, v; java.lang.Object v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec$1 v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; if v == null goto label; v = new org.fusesource.hawtdispatch.transport.AbstractProtocolCodec$1; v = v.; v = virtualinvoke v.(); specialinvoke v.(org.fusesource.hawtdispatch.transport.AbstractProtocolCodec,byte[])>(v, v); return v; label: v = new org.fusesource.hawtbuf.DataByteArrayOutputStream; v = v.; specialinvoke v.(int)>(v); return v; } protected void writeDirect(java.nio.ByteBuffer) throws java.io.IOException { byte[] v, v; long v, v; java.nio.ByteBuffer v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v, v, v, v, v, v; java.util.LinkedList v; org.fusesource.hawtbuf.DataByteArrayOutputStream v, v, v, v, v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: java.nio.ByteBuffer; v = v.; v = virtualinvoke v.(); v = virtualinvoke v.(); v = v.; v = virtualinvoke v.(); v = lengthof v; v = v - v; if v <= v goto label; v = v.; v = virtualinvoke v.(); virtualinvoke v.(v, v, v); v = v.; v = v + v; virtualinvoke v.(v); goto label; label: v = v.; if v == null goto label; v = v.; v = virtualinvoke v.(); if v == 0 goto label; virtualinvoke v.(); label: v = v.; virtualinvoke v.(v); v = v.; v = virtualinvoke v.(); v = v + v; v. = v; label: return; } protected void flushNextWriteBuffer() { org.fusesource.hawtbuf.DataByteArrayOutputStream v, v; long v, v; org.fusesource.hawtbuf.Buffer v; java.nio.ByteBuffer v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v; java.util.LinkedList v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = specialinvoke v.(); v = v.; v = virtualinvoke v.(); v = virtualinvoke v.(); v = v.; virtualinvoke v.(v); v = v.; v = virtualinvoke v.(); v = v + v; v. = v; v. = v; return; } public org.fusesource.hawtdispatch.transport.ProtocolCodec$BufferState flush() throws java.io.IOException { byte[] v; org.fusesource.hawtdispatch.transport.ProtocolCodec$BufferState v, v, v; org.fusesource.hawtdispatch.util.BufferPool v, v; byte v, v, v; boolean v, v, v; java.nio.ByteBuffer[] v; java.lang.Object[] v; long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v, v, v, v; java.util.LinkedList v, v, v, v, v, v, v, v; org.fusesource.hawtbuf.DataByteArrayOutputStream v, v, v, v; java.lang.Object v, v, v, v; java.nio.channels.GatheringByteChannel v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; label: v = v.; v = v cmp 0L; if v == 0 goto label; v = v.; v = virtualinvoke v.(); if v != 1 goto label; v = v.; v = virtualinvoke v.(); v = v.; v = interfaceinvoke v.(v); v. = v; v = v.; v = v cmp 0L; if v != 0 goto label; v = ; return v; label: v = v.; v = v.; v = v - v; v. = v; v = v.; v = v.; v = v + v; v. = v; v = virtualinvoke v.(); if v != 0 goto label; v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); goto label; label: v = v.; v = v.; v = virtualinvoke v.(); v = newarray (java.nio.ByteBuffer)[v]; v = virtualinvoke v.(v); v = v.; v = lengthof v; v = interfaceinvoke v.(v, 0, v); v. = v; v = v.; v = v cmp 0L; if v != 0 goto label; v = ; return v; label: v = v.; v = v.; v = v - v; v. = v; v = v.; v = v.; v = v + v; v. = v; label: v = v.; v = virtualinvoke v.(); if v != 0 goto label; v = v.; v = virtualinvoke v.(); v = virtualinvoke v.(); if v != 0 goto label; v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); goto label; label: v = v.; if v == null goto label; v = v.; v = virtualinvoke v.(); if v != 0 goto label; label: v = v.; if v == null goto label; v = v.; if v == null goto label; v = v.; v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); v. = null; label: v = ; return v; label: virtualinvoke v.(); goto label; } protected void onBufferFlushed(java.nio.ByteBuffer) { org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; java.nio.ByteBuffer v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: java.nio.ByteBuffer; return; } protected abstract org.fusesource.hawtdispatch.transport.AbstractProtocolCodec$Action initialDecodeAction(); public void unread(byte[]) { byte[] v; long v, v, v; java.lang.AssertionError v; java.nio.ByteBuffer v, v; byte v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v; boolean v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: byte[]; v = ; if v != 0 goto label; v = v.; v = v cmp 0L; if v == 0 goto label; v = new java.lang.AssertionError; specialinvoke v.()>(); throw v; label: v = lengthof v; v = staticinvoke (v); v. = v; v = v.; virtualinvoke v.(v); v = v.; v = lengthof v; v = v + v; v. = v; return; } public long getReadCounter() { long v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; return v; } public long getLastReadSize() { int v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; return v; } public java.lang.Object read() throws java.io.IOException { byte[] v, v, v, v, v, v; org.fusesource.hawtdispatch.util.BufferPool v, v, v, v, v, v, v, v; long v, v, v, v, v, v; java.lang.AssertionError v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec$Action v, v; java.nio.ByteBuffer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v; boolean v, v, v, v, v; java.io.EOFException v, v; int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v; java.nio.channels.ReadableByteChannel v, v; java.lang.Object v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = null; label: if v != null goto label; v = v.; if v == null goto label; label: v = v.; v = virtualinvoke v.(); if v == 0 goto label; v = v.; v = v.; v = interfaceinvoke v.(v); v. = v; v = v.; v = v.; v = v + v; v. = v; v = v.; v = (int) -1; if v != v goto label; v = new java.io.EOFException; specialinvoke v.(java.lang.String)>("Peer disconnected"); throw v; label: v = v.; if v != 0 goto label; return null; label: v = v.; v = interfaceinvoke v.(); goto label; label: v = v.; if v == null goto label; v = v.; v = v.; v = virtualinvoke v.(); if v < v goto label; label: v = 0; v = 0; v = v.; if v == null goto label; v = v.; v = virtualinvoke v.(); v = v.; if v == null goto label; v = v.; if v != 0 goto label; v = v.; v = virtualinvoke v.(); v = v.; v = virtualinvoke v.(); if v != v goto label; v = 1; goto label; label: v = 0; label: v = v; label: v = v.; if v == null goto label; v = v.; v = virtualinvoke v.(); if v != 0 goto label; label: v = v.; v = v - v; v = v.; v = v.; v = v - v; if v <= v goto label; v = v.; v = staticinvoke (v, v); goto label; label: v = v.; v = v + v; label: if v <= 0 goto label; v = v.; v = virtualinvoke v.(); v = v.; v = v.; v = v + v; staticinvoke (v, v, v); goto label; label: v = v.; if v == null goto label; v = v.; v = virtualinvoke v.(); if v != v goto label; v = v.; v = virtualinvoke v.(); goto label; label: v = newarray (byte)[v]; label: if v == 0 goto label; v = v.; v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); label: v = staticinvoke (v); v. = v; v = v.; virtualinvoke v.(v); v. = 0; v. = v; label: v = v.; v = v.; v = interfaceinvoke v.(v); v. = v; v = v.; v = v.; v = v + v; v. = v; v = v.; v = (int) -1; if v != v goto label; v = v.; v = v + 1L; v. = v; v = new java.io.EOFException; specialinvoke v.(java.lang.String)>("Peer disconnected"); throw v; label: v = v.; if v != 0 goto label; v = v.; v = v.; v = virtualinvoke v.(); if v != v goto label; if v == 0 goto label; v = v.; v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); label: v. = 0; v. = 0; v. = null; label: return null; label: v = v.; v = virtualinvoke v.(); if v == 0 goto label; v = v.; v = v.; v = virtualinvoke v.(); if v > v goto label; v = v.; v = virtualinvoke v.(); v = v.; v = virtualinvoke v.(); v = staticinvoke (v, 0, v); v = staticinvoke (v); v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); if v == 0 goto label; v = v.; v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); label: v. = v; label: v = v.; v = interfaceinvoke v.(); v = ; if v != 0 goto label; v = v.; v = v.; if v <= v goto label; v = new java.lang.AssertionError; specialinvoke v.()>(); throw v; label: return v; } protected org.fusesource.hawtbuf.Buffer readUntil(java.lang.Byte) throws java.net.ProtocolException { org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v; java.lang.Byte v; org.fusesource.hawtbuf.Buffer v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: java.lang.Byte; v = (int) -1; v = virtualinvoke v.(v, v); return v; } protected org.fusesource.hawtbuf.Buffer readUntil(java.lang.Byte, int) throws java.net.ProtocolException { org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v; java.lang.Byte v; org.fusesource.hawtbuf.Buffer v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: java.lang.Byte; v := @parameter: int; v = virtualinvoke v.(v, v, "Maximum protocol buffer length exeeded"); return v; } protected org.fusesource.hawtbuf.Buffer readUntil(java.lang.Byte, int, java.lang.String) throws java.net.ProtocolException { byte[] v; org.fusesource.hawtbuf.Buffer v, v; java.nio.ByteBuffer v, v; byte v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v; java.lang.String v; java.lang.Byte v; java.net.ProtocolException v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: java.lang.Byte; v := @parameter: int; v := @parameter: java.lang.String; v = v.; v = virtualinvoke v.(); v = new org.fusesource.hawtbuf.Buffer; v = v.; v = v.; v = virtualinvoke v.(); v = v.; v = v - v; specialinvoke v.(byte[],int,int)>(v, v, v); v = virtualinvoke v.(); v = virtualinvoke v.(v); if v < 0 goto label; v = v.; v = v.; v = v + 1; v = v + v; v. = v; v = v.; v. = v; v = v.; v = v - v; if v < 0 goto label; if v <= v goto label; v = new java.net.ProtocolException; specialinvoke v.(java.lang.String)>(v); throw v; label: v = new org.fusesource.hawtbuf.Buffer; specialinvoke v.(byte[],int,int)>(v, v, v); return v; label: v = v.; v = v.; v = v + v; v. = v; if v < 0 goto label; v = v.; v = v.; v = v - v; if v <= v goto label; v = new java.net.ProtocolException; specialinvoke v.(java.lang.String)>(v); throw v; label: return null; } protected org.fusesource.hawtbuf.Buffer readBytes(int) { byte[] v; org.fusesource.hawtbuf.Buffer v; java.nio.ByteBuffer v, v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v, v, v, v, v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: int; v = v.; v = v + v; v. = v; v = v.; v = virtualinvoke v.(); v = v.; if v >= v goto label; return null; label: v = v.; v = v.; v. = v; v = new org.fusesource.hawtbuf.Buffer; v = v.; v = virtualinvoke v.(); specialinvoke v.(byte[],int,int)>(v, v, v); return v; } protected org.fusesource.hawtbuf.Buffer peekBytes(int) { byte[] v; org.fusesource.hawtbuf.Buffer v; java.nio.ByteBuffer v, v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v, v, v, v, v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: int; v = v.; v = v + v; v. = v; v = v.; v = virtualinvoke v.(); v = v.; if v >= v goto label; return null; label: v = v.; v. = v; v = new org.fusesource.hawtbuf.Buffer; v = v.; v = virtualinvoke v.(); v = v.; specialinvoke v.(byte[],int,int)>(v, v, v); return v; } protected java.lang.Boolean readDirect(java.nio.ByteBuffer) { byte[] v; java.lang.AssertionError v; java.nio.ByteBuffer v, v, v, v, v, v; org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; int v, v, v, v, v, v, v, v, v, v, v, v, v, v; java.lang.Boolean v, v; boolean v, v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: java.nio.ByteBuffer; v = ; if v != 0 goto label; v = v.; if v == null goto label; v = v.; if v == v goto label; v = new java.lang.AssertionError; specialinvoke v.()>(); throw v; label: v = virtualinvoke v.(); if v == 0 goto label; v = v.; v = virtualinvoke v.(); v = v.; v = v - v; v = virtualinvoke v.(); v = staticinvoke (v, v); v = v.; v = virtualinvoke v.(); v = v.; virtualinvoke v.(v, v, v); v = v.; v = v + v; v = v - v; if v <= 0 goto label; v = v.; v = v + v; v = v.; staticinvoke (v, v, v, v, v); label: v = v.; v = v.; v = v + v; virtualinvoke v.(v); label: v = virtualinvoke v.(); if v == 0 goto label; v. = v; v = staticinvoke (0); return v; label: v. = null; virtualinvoke v.(); v = staticinvoke (1); return v; } public org.fusesource.hawtdispatch.util.BufferPools getBufferPools() { org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; org.fusesource.hawtdispatch.util.BufferPools v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v = v.; return v; } public void setBufferPools(org.fusesource.hawtdispatch.util.BufferPools) { org.fusesource.hawtdispatch.transport.AbstractProtocolCodec v; org.fusesource.hawtdispatch.util.BufferPools v; int v, v; org.fusesource.hawtdispatch.util.BufferPool v, v; v := @this: org.fusesource.hawtdispatch.transport.AbstractProtocolCodec; v := @parameter: org.fusesource.hawtdispatch.util.BufferPools; v. = v; if v == null goto label; v = v.; v = virtualinvoke v.(v); v. = v; v = v.; v = virtualinvoke v.(v); v. = v; goto label; label: v. = null; v. = null; label: return; } static void () { java.lang.Class v; boolean v, v; v = class "Lorg/fusesource/hawtdispatch/transport/AbstractProtocolCodec;"; v = virtualinvoke v.(); if v != 0 goto label; v = 1; goto label; label: v = 0; label: = v; return; } }