public abstract class io.netty.handler.codec.MessageToMessageEncoder extends io.netty.channel.ChannelOutboundHandlerAdapter
{
private final io.netty.util.internal.TypeParameterMatcher matcher;
protected void <init>()
{
io.netty.handler.codec.MessageToMessageEncoder v;
io.netty.util.internal.TypeParameterMatcher v;
v := @this: io.netty.handler.codec.MessageToMessageEncoder;
specialinvoke v.<io.netty.channel.ChannelOutboundHandlerAdapter: void <init>()>();
v = staticinvoke <io.netty.util.internal.TypeParameterMatcher: io.netty.util.internal.TypeParameterMatcher find(java.lang.Object,java.lang.Class,java.lang.String)>(v, class "Lio/netty/handler/codec/MessageToMessageEncoder;", "I");
v.<io.netty.handler.codec.MessageToMessageEncoder: io.netty.util.internal.TypeParameterMatcher matcher> = v;
return;
}
protected void <init>(java.lang.Class)
{
io.netty.handler.codec.MessageToMessageEncoder v;
io.netty.util.internal.TypeParameterMatcher v;
java.lang.Class v;
v := @this: io.netty.handler.codec.MessageToMessageEncoder;
v := @parameter: java.lang.Class;
specialinvoke v.<io.netty.channel.ChannelOutboundHandlerAdapter: void <init>()>();
v = staticinvoke <io.netty.util.internal.TypeParameterMatcher: io.netty.util.internal.TypeParameterMatcher get(java.lang.Class)>(v);
v.<io.netty.handler.codec.MessageToMessageEncoder: io.netty.util.internal.TypeParameterMatcher matcher> = v;
return;
}
public boolean acceptOutboundMessage(java.lang.Object) throws java.lang.Exception
{
io.netty.handler.codec.MessageToMessageEncoder v;
io.netty.util.internal.TypeParameterMatcher v;
java.lang.Object v;
boolean v;
v := @this: io.netty.handler.codec.MessageToMessageEncoder;
v := @parameter: java.lang.Object;
v = v.<io.netty.handler.codec.MessageToMessageEncoder: io.netty.util.internal.TypeParameterMatcher matcher>;
v = virtualinvoke v.<io.netty.util.internal.TypeParameterMatcher: boolean match(java.lang.Object)>(v);
return v;
}
public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
java.lang.Throwable v, v, v;
io.netty.handler.codec.EncoderException v, v, v;
io.netty.handler.codec.MessageToMessageEncoder v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v, v;
int v, v;
java.lang.String v, v;
io.netty.handler.codec.CodecOutputList v;
boolean v, v;
java.lang.Object v, v;
v := @this: io.netty.handler.codec.MessageToMessageEncoder;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v = null;
label:
v = virtualinvoke v.<io.netty.handler.codec.MessageToMessageEncoder: boolean acceptOutboundMessage(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <io.netty.handler.codec.CodecOutputList: io.netty.handler.codec.CodecOutputList newInstance()>();
label:
virtualinvoke v.<io.netty.handler.codec.MessageToMessageEncoder: void encode(io.netty.channel.ChannelHandlerContext,java.lang.Object,java.util.List)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
staticinvoke <io.netty.util.ReferenceCountUtil: void safeRelease(java.lang.Object)>(v);
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
label:
staticinvoke <io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
v = virtualinvoke v.<io.netty.handler.codec.CodecOutputList: boolean isEmpty()>();
if v == 0 goto label;
v = new io.netty.handler.codec.EncoderException;
v = staticinvoke <io.netty.util.internal.StringUtil: java.lang.String simpleClassName(java.lang.Object)>(v);
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[])>("\u must produce at least one message.");
specialinvoke v.<io.netty.handler.codec.EncoderException: void <init>(java.lang.String)>(v);
throw v;
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
label:
if v == null goto label;
label:
v = virtualinvoke v.<io.netty.handler.codec.CodecOutputList: int size()>();
v = v - 1;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.CodecOutputList: java.lang.Object getUnsafe(int)>(0);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
if v <= 0 goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise voidPromise()>();
if v != v goto label;
staticinvoke <io.netty.handler.codec.MessageToMessageEncoder: void writeVoidPromise(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.CodecOutputList)>(v, v);
goto label;
label:
staticinvoke <io.netty.handler.codec.MessageToMessageEncoder: void writePromiseCombiner(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.CodecOutputList,io.netty.channel.ChannelPromise)>(v, v, v);
label:
virtualinvoke v.<io.netty.handler.codec.CodecOutputList: void recycle()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.handler.codec.CodecOutputList: void recycle()>();
throw v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new io.netty.handler.codec.EncoderException;
specialinvoke v.<io.netty.handler.codec.EncoderException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch io.netty.handler.codec.EncoderException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static void writeVoidPromise(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.CodecOutputList)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
int v, v;
java.lang.Object v;
io.netty.handler.codec.CodecOutputList v;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.CodecOutputList;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise voidPromise()>();
v = 0;
label:
v = virtualinvoke v.<io.netty.handler.codec.CodecOutputList: int size()>();
if v >= v goto label;
v = virtualinvoke v.<io.netty.handler.codec.CodecOutputList: java.lang.Object getUnsafe(int)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
v = v + 1;
goto label;
label:
return;
}
private static void writePromiseCombiner(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.CodecOutputList, io.netty.channel.ChannelPromise)
{
io.netty.util.concurrent.EventExecutor v;
io.netty.util.concurrent.PromiseCombiner v;
io.netty.channel.ChannelFuture v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
int v, v;
java.lang.Object v;
io.netty.handler.codec.CodecOutputList v;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.CodecOutputList;
v := @parameter: io.netty.channel.ChannelPromise;
v = new io.netty.util.concurrent.PromiseCombiner;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.util.concurrent.EventExecutor executor()>();
specialinvoke v.<io.netty.util.concurrent.PromiseCombiner: void <init>(io.netty.util.concurrent.EventExecutor)>(v);
v = 0;
label:
v = virtualinvoke v.<io.netty.handler.codec.CodecOutputList: int size()>();
if v >= v goto label;
v = virtualinvoke v.<io.netty.handler.codec.CodecOutputList: java.lang.Object getUnsafe(int)>(v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object)>(v);
virtualinvoke v.<io.netty.util.concurrent.PromiseCombiner: void add(io.netty.util.concurrent.Future)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<io.netty.util.concurrent.PromiseCombiner: void finish(io.netty.util.concurrent.Promise)>(v);
return;
}
protected abstract void encode(io.netty.channel.ChannelHandlerContext, java.lang.Object, java.util.List) throws java.lang.Exception;
}