public class oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder extends oadd.io.netty.handler.codec.ByteToMessageDecoder
{
private final oadd.io.netty.buffer.ByteBuf[] delimiters;
private final int maxFrameLength;
private final boolean stripDelimiter;
private final boolean failFast;
private boolean discardingTooLongFrame;
private int tooLongFrameLength;
private final oadd.io.netty.handler.codec.LineBasedFrameDecoder lineBasedDecoder;
public void <init>(int, oadd.io.netty.buffer.ByteBuf)
{
int v;
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
oadd.io.netty.buffer.ByteBuf v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: int;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void <init>(int,boolean,oadd.io.netty.buffer.ByteBuf)>(v, 1, v);
return;
}
public void <init>(int, boolean, oadd.io.netty.buffer.ByteBuf)
{
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
int v;
oadd.io.netty.buffer.ByteBuf v;
boolean v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void <init>(int,boolean,boolean,oadd.io.netty.buffer.ByteBuf)>(v, v, 1, v);
return;
}
public void <init>(int, boolean, boolean, oadd.io.netty.buffer.ByteBuf)
{
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
oadd.io.netty.buffer.ByteBuf[] v;
int v, v, v;
oadd.io.netty.buffer.ByteBuf v, v;
boolean v, v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = newarray (oadd.io.netty.buffer.ByteBuf)[1];
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf slice(int,int)>(v, v);
v[0] = v;
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void <init>(int,boolean,boolean,oadd.io.netty.buffer.ByteBuf[])>(v, v, v, v);
return;
}
public transient void <init>(int, oadd.io.netty.buffer.ByteBuf[])
{
int v;
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
oadd.io.netty.buffer.ByteBuf[] v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: int;
v := @parameter: oadd.io.netty.buffer.ByteBuf[];
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void <init>(int,boolean,oadd.io.netty.buffer.ByteBuf[])>(v, 1, v);
return;
}
public transient void <init>(int, boolean, oadd.io.netty.buffer.ByteBuf[])
{
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
oadd.io.netty.buffer.ByteBuf[] v;
int v;
boolean v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: oadd.io.netty.buffer.ByteBuf[];
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void <init>(int,boolean,boolean,oadd.io.netty.buffer.ByteBuf[])>(v, v, 1, v);
return;
}
public transient void <init>(int, boolean, boolean, oadd.io.netty.buffer.ByteBuf[])
{
oadd.io.netty.handler.codec.LineBasedFrameDecoder v;
int v, v, v, v, v, v;
oadd.io.netty.buffer.ByteBuf v, v;
boolean v, v, v, v;
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
oadd.io.netty.buffer.ByteBuf[] v, v, v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: oadd.io.netty.buffer.ByteBuf[];
specialinvoke v.<oadd.io.netty.handler.codec.ByteToMessageDecoder: void <init>()>();
staticinvoke <oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void validateMaxFrameLength(int)>(v);
staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object[] checkNonEmpty(java.lang.Object[],java.lang.String)>(v, "delimiters");
v = staticinvoke <oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean isLineBased(oadd.io.netty.buffer.ByteBuf[])>(v);
if v == 0 goto label;
v = specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean isSubclass()>();
if v != 0 goto label;
v = new oadd.io.netty.handler.codec.LineBasedFrameDecoder;
specialinvoke v.<oadd.io.netty.handler.codec.LineBasedFrameDecoder: void <init>(int,boolean,boolean)>(v, v, v);
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.handler.codec.LineBasedFrameDecoder lineBasedDecoder> = v;
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.buffer.ByteBuf[] delimiters> = null;
goto label;
label:
v = lengthof v;
v = newarray (oadd.io.netty.buffer.ByteBuf)[v];
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.buffer.ByteBuf[] delimiters> = v;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
staticinvoke <oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void validateDelimiter(oadd.io.netty.buffer.ByteBuf)>(v);
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.buffer.ByteBuf[] delimiters>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf slice(int,int)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.handler.codec.LineBasedFrameDecoder lineBasedDecoder> = null;
label:
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int maxFrameLength> = v;
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean stripDelimiter> = v;
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean failFast> = v;
return;
}
private static boolean isLineBased(oadd.io.netty.buffer.ByteBuf[])
{
oadd.io.netty.buffer.ByteBuf[] v;
byte v, v, v;
int v, v, v, v, v;
oadd.io.netty.buffer.ByteBuf v, v;
boolean v;
v := @parameter: oadd.io.netty.buffer.ByteBuf[];
v = lengthof v;
if v == 2 goto label;
return 0;
label:
v = v[0];
v = v[1];
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
if v >= v goto label;
v = v[1];
v = v[0];
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
if v != 2 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
if v != 1 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: byte getByte(int)>(0);
if v != 13 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: byte getByte(int)>(1);
if v != 10 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: byte getByte(int)>(0);
if v != 10 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isSubclass()
{
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
java.lang.Class v;
boolean v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == class "Loadd/io/netty/handler/codec/DelimiterBasedFrameDecoder;" goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected final void decode(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.buffer.ByteBuf, java.util.List) throws java.lang.Exception
{
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
java.util.List v;
java.lang.Object v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: java.util.List;
v = virtualinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: java.lang.Object decode(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf)>(v, v);
if v == null goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return;
}
protected java.lang.Object decode(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.buffer.ByteBuf) throws java.lang.Exception
{
oadd.io.netty.handler.codec.LineBasedFrameDecoder v, v;
boolean v, v, v, v, v;
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.buffer.ByteBuf v, v, v, v;
oadd.io.netty.buffer.ByteBuf[] v;
java.lang.Object v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.handler.codec.LineBasedFrameDecoder lineBasedDecoder>;
if v == null goto label;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.handler.codec.LineBasedFrameDecoder lineBasedDecoder>;
v = virtualinvoke v.<oadd.io.netty.handler.codec.LineBasedFrameDecoder: java.lang.Object decode(oadd.io.netty.channel.ChannelHandlerContext,oadd.io.netty.buffer.ByteBuf)>(v, v);
return v;
label:
v = 2147483647;
v = null;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: oadd.io.netty.buffer.ByteBuf[] delimiters>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int indexOf(oadd.io.netty.buffer.ByteBuf,oadd.io.netty.buffer.ByteBuf)>(v, v);
if v < 0 goto label;
if v >= v goto label;
v = v;
v = v;
label:
v = v + 1;
goto label;
label:
if v == null goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean discardingTooLongFrame>;
if v == 0 goto label;
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean discardingTooLongFrame> = 0;
v = v + v;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int tooLongFrameLength>;
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int tooLongFrameLength> = 0;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean failFast>;
if v != 0 goto label;
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void fail(long)>(v);
label:
return null;
label:
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int maxFrameLength>;
if v <= v goto label;
v = v + v;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void fail(long)>(v);
return null;
label:
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean stripDelimiter>;
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf readRetainedSlice(int)>(v);
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
goto label;
label:
v = v + v;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf readRetainedSlice(int)>(v);
label:
return v;
label:
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean discardingTooLongFrame>;
if v != 0 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int maxFrameLength>;
if v <= v goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int tooLongFrameLength> = v;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean discardingTooLongFrame> = 1;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: boolean failFast>;
if v == 0 goto label;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int tooLongFrameLength>;
specialinvoke v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: void fail(long)>(v);
goto label;
label:
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int tooLongFrameLength>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = v + v;
v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int tooLongFrameLength> = v;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf skipBytes(int)>(v);
label:
return null;
}
private void fail(long)
{
oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder v;
long v;
byte v;
int v, v;
oadd.io.netty.handler.codec.TooLongFrameException v, v;
java.lang.String v, v;
v := @this: oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder;
v := @parameter: long;
v = v cmp 0L;
if v <= 0 goto label;
v = new oadd.io.netty.handler.codec.TooLongFrameException;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int maxFrameLength>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("frame length exceeds \u0001: \u - discarded");
specialinvoke v.<oadd.io.netty.handler.codec.TooLongFrameException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new oadd.io.netty.handler.codec.TooLongFrameException;
v = v.<oadd.io.netty.handler.codec.DelimiterBasedFrameDecoder: int maxFrameLength>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("frame length exceeds \u - discarding");
specialinvoke v.<oadd.io.netty.handler.codec.TooLongFrameException: void <init>(java.lang.String)>(v);
throw v;
}
private static int indexOf(oadd.io.netty.buffer.ByteBuf, oadd.io.netty.buffer.ByteBuf)
{
byte v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.io.netty.buffer.ByteBuf v, v;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
if v >= v goto label;
v = v;
v = 0;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
if v >= v goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: byte getByte(int)>(v);
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: byte getByte(int)>(v);
if v != v goto label;
v = v + 1;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
if v != v goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
v = v - 1;
if v == v goto label;
v = (int) -1;
return v;
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
if v != v goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = v - v;
return v;
label:
v = v + 1;
goto label;
label:
v = (int) -1;
return v;
}
private static void validateDelimiter(oadd.io.netty.buffer.ByteBuf)
{
java.lang.IllegalArgumentException v;
oadd.io.netty.buffer.ByteBuf v;
boolean v;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "delimiter");
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean isReadable()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("empty delimiter");
throw v;
label:
return;
}
private static void validateMaxFrameLength(int)
{
int v;
v := @parameter: int;
staticinvoke <oadd.io.netty.util.internal.ObjectUtil: int checkPositive(int,java.lang.String)>(v, "maxFrameLength");
return;
}
}