abstract class io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder extends io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder
{
static final io.netty.buffer.ByteBuf FRAME_TAIL;
static final io.netty.buffer.ByteBuf EMPTY_DEFLATE_BLOCK;
private final boolean noContext;
private final io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter extensionDecoderFilter;
private io.netty.channel.embedded.EmbeddedChannel decoder;
void <init>(boolean, io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter)
{
io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter v;
java.lang.Object v;
io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder v;
boolean v;
v := @this: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder;
v := @parameter: boolean;
v := @parameter: io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter;
specialinvoke v.<io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder: void <init>()>();
v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: boolean noContext> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "extensionDecoderFilter");
v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter extensionDecoderFilter> = v;
return;
}
protected io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter extensionDecoderFilter()
{
io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter v;
io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder v;
v := @this: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder;
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionFilter extensionDecoderFilter>;
return v;
}
protected abstract boolean appendFrameTail(io.netty.handler.codec.http.websocketx.WebSocketFrame);
protected abstract int newRsv(io.netty.handler.codec.http.websocketx.WebSocketFrame);
protected void decode(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame, java.util.List) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.CodecException v;
io.netty.buffer.ByteBuf v;
int v, v, v;
java.lang.String v, v;
io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder v;
boolean v, v, v, v, v, v;
io.netty.handler.codec.http.websocketx.WebSocketFrame v, v;
io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame v;
io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame v;
java.util.List v;
io.netty.handler.codec.http.websocketx.TextWebSocketFrame v;
java.lang.Class v;
v := @this: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.websocketx.WebSocketFrame;
v := @parameter: java.util.List;
v = specialinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.buffer.ByteBuf decompressContent(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.http.websocketx.WebSocketFrame)>(v, v);
v = v instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
if v == 0 goto label;
v = new io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: boolean isFinalFragment()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: int newRsv(io.netty.handler.codec.http.websocketx.WebSocketFrame)>(v);
specialinvoke v.<io.netty.handler.codec.http.websocketx.TextWebSocketFrame: void <init>(boolean,int,io.netty.buffer.ByteBuf)>(v, v, v);
v = v;
goto label;
label:
v = v instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame;
if v == 0 goto label;
v = new io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: boolean isFinalFragment()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: int newRsv(io.netty.handler.codec.http.websocketx.WebSocketFrame)>(v);
specialinvoke v.<io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame: void <init>(boolean,int,io.netty.buffer.ByteBuf)>(v, v, v);
v = v;
goto label;
label:
v = v instanceof io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame;
if v == 0 goto label;
v = new io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: boolean isFinalFragment()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: int newRsv(io.netty.handler.codec.http.websocketx.WebSocketFrame)>(v);
specialinvoke v.<io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame: void <init>(boolean,int,io.netty.buffer.ByteBuf)>(v, v, v);
v = v;
goto label;
label:
v = new io.netty.handler.codec.CodecException;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("unexpected frame type: \u0001");
specialinvoke v.<io.netty.handler.codec.CodecException: void <init>(java.lang.String)>(v);
throw v;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public void handlerRemoved(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder v;
v := @this: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: void cleanup()>();
specialinvoke v.<io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder: void handlerRemoved(io.netty.channel.ChannelHandlerContext)>(v);
return;
}
public void channelInactive(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder v;
v := @this: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: void cleanup()>();
specialinvoke v.<io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder: void channelInactive(io.netty.channel.ChannelHandlerContext)>(v);
return;
}
private io.netty.buffer.ByteBuf decompressContent(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame)
{
io.netty.buffer.ByteBufAllocator v;
io.netty.handler.codec.compression.ZlibDecoder v;
io.netty.handler.codec.CodecException v, v;
io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder v;
boolean v, v, v, v, v, v, v, v, v;
io.netty.buffer.CompositeByteBuf v;
java.lang.Object[] v, v;
io.netty.channel.ChannelHandlerContext v;
io.netty.buffer.ByteBuf v, v, v, v, v, v, v;
int v;
java.lang.String v, v;
io.netty.handler.codec.http.websocketx.WebSocketFrame v;
io.netty.channel.embedded.EmbeddedChannel v, v, v, v, v;
io.netty.handler.codec.compression.ZlibWrapper v;
io.netty.channel.ChannelHandler[] v;
java.lang.Class v;
java.lang.Object v;
v := @this: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.websocketx.WebSocketFrame;
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder>;
if v != null goto label;
v = v instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame;
if v != 0 goto label;
v = new io.netty.handler.codec.CodecException;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("unexpected initial frame type: \u0001");
specialinvoke v.<io.netty.handler.codec.CodecException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new io.netty.channel.embedded.EmbeddedChannel;
v = newarray (io.netty.channel.ChannelHandler)[1];
v = <io.netty.handler.codec.compression.ZlibWrapper: io.netty.handler.codec.compression.ZlibWrapper NONE>;
v = staticinvoke <io.netty.handler.codec.compression.ZlibCodecFactory: io.netty.handler.codec.compression.ZlibDecoder newZlibDecoder(io.netty.handler.codec.compression.ZlibWrapper)>(v);
v[0] = v;
specialinvoke v.<io.netty.channel.embedded.EmbeddedChannel: void <init>(io.netty.channel.ChannelHandler[])>(v);
v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder> = v;
label:
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: boolean isReadable()>();
v = <io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.buffer.ByteBuf EMPTY_DEFLATE_BLOCK>;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: boolean equals(java.lang.Object)>(v);
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder>;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf retain()>();
v[0] = v;
virtualinvoke v.<io.netty.channel.embedded.EmbeddedChannel: boolean writeInbound(java.lang.Object[])>(v);
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: boolean appendFrameTail(io.netty.handler.codec.http.websocketx.WebSocketFrame)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder>;
v = newarray (java.lang.Object)[1];
v = <io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.buffer.ByteBuf FRAME_TAIL>;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf duplicate()>();
v[0] = v;
virtualinvoke v.<io.netty.channel.embedded.EmbeddedChannel: boolean writeInbound(java.lang.Object[])>(v);
label:
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.buffer.ByteBufAllocator alloc()>();
v = interfaceinvoke v.<io.netty.buffer.ByteBufAllocator: io.netty.buffer.CompositeByteBuf compositeBuffer()>();
label:
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder>;
v = virtualinvoke v.<io.netty.channel.embedded.EmbeddedChannel: java.lang.Object readInbound()>();
if v == null goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: boolean isReadable()>();
if v != 0 goto label;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
virtualinvoke v.<io.netty.buffer.CompositeByteBuf: io.netty.buffer.CompositeByteBuf addComponent(boolean,io.netty.buffer.ByteBuf)>(1, v);
goto label;
label:
if v != 0 goto label;
if v == 0 goto label;
v = virtualinvoke v.<io.netty.buffer.CompositeByteBuf: int numComponents()>();
if v > 0 goto label;
v = v instanceof io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame;
if v != 0 goto label;
virtualinvoke v.<io.netty.buffer.CompositeByteBuf: boolean release()>();
v = new io.netty.handler.codec.CodecException;
specialinvoke v.<io.netty.handler.codec.CodecException: void <init>(java.lang.String)>("cannot read uncompressed buffer");
throw v;
label:
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: boolean isFinalFragment()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: boolean noContext>;
if v == 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: void cleanup()>();
label:
return v;
}
private void cleanup()
{
io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder v;
io.netty.channel.embedded.EmbeddedChannel v, v;
v := @this: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder;
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder>;
if v == null goto label;
v = v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder>;
virtualinvoke v.<io.netty.channel.embedded.EmbeddedChannel: boolean finishAndReleaseAll()>();
v.<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.channel.embedded.EmbeddedChannel decoder> = null;
label:
return;
}
static void <clinit>()
{
byte[] v, v;
io.netty.buffer.ByteBuf v, v, v, v, v, v;
v = newarray (byte)[4];
v[0] = 0;
v[1] = 0;
v[2] = -1;
v[3] = -1;
v = staticinvoke <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf wrappedBuffer(byte[])>(v);
v = staticinvoke <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf unreleasableBuffer(io.netty.buffer.ByteBuf)>(v);
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf asReadOnly()>();
<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.buffer.ByteBuf FRAME_TAIL> = v;
v = newarray (byte)[1];
v[0] = 0;
v = staticinvoke <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf wrappedBuffer(byte[])>(v);
v = staticinvoke <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf unreleasableBuffer(io.netty.buffer.ByteBuf)>(v);
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf asReadOnly()>();
<io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder: io.netty.buffer.ByteBuf EMPTY_DEFLATE_BLOCK> = v;
return;
}
}