abstract class io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler extends io.netty.handler.codec.MessageToMessageDecoder implements io.netty.channel.ChannelOutboundHandler
{
private final boolean dropPongFrames;
private final io.netty.handler.codec.http.websocketx.WebSocketCloseStatus closeStatus;
private final long forceCloseTimeoutMillis;
private io.netty.channel.ChannelPromise closeSent;
void <init>()
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void <init>(boolean)>(1);
return;
}
void <init>(boolean)
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
boolean v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: boolean;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void <init>(boolean,io.netty.handler.codec.http.websocketx.WebSocketCloseStatus,long)>(v, null, 0L);
return;
}
void <init>(boolean, io.netty.handler.codec.http.websocketx.WebSocketCloseStatus, long)
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
io.netty.handler.codec.http.websocketx.WebSocketCloseStatus v;
long v;
boolean v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: boolean;
v := @parameter: io.netty.handler.codec.http.websocketx.WebSocketCloseStatus;
v := @parameter: long;
specialinvoke v.<io.netty.handler.codec.MessageToMessageDecoder: void <init>()>();
v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: boolean dropPongFrames> = v;
v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.handler.codec.http.websocketx.WebSocketCloseStatus closeStatus> = v;
v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: long forceCloseTimeoutMillis> = v;
return;
}
protected void decode(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame, java.util.List) throws java.lang.Exception
{
io.netty.handler.codec.http.websocketx.WebSocketFrame v, v;
io.netty.channel.ChannelHandlerContext v;
java.util.List v;
io.netty.buffer.ByteBuf v, v;
io.netty.handler.codec.http.websocketx.PongWebSocketFrame v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
boolean v, v, v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.websocketx.WebSocketFrame;
v := @parameter: java.util.List;
v = v instanceof io.netty.handler.codec.http.websocketx.PingWebSocketFrame;
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: io.netty.buffer.ByteBuf content()>();
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf retain()>();
v = new io.netty.handler.codec.http.websocketx.PongWebSocketFrame;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: io.netty.buffer.ByteBuf content()>();
specialinvoke v.<io.netty.handler.codec.http.websocketx.PongWebSocketFrame: void <init>(io.netty.buffer.ByteBuf)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
staticinvoke <io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void readIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
return;
label:
v = v instanceof io.netty.handler.codec.http.websocketx.PongWebSocketFrame;
if v == 0 goto label;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: boolean dropPongFrames>;
if v == 0 goto label;
staticinvoke <io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void readIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
return;
label:
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketFrame: io.netty.handler.codec.http.websocketx.WebSocketFrame retain()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
private static void readIfNeeded(io.netty.channel.ChannelHandlerContext)
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelConfig v;
boolean v;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.ChannelConfig: boolean isAutoRead()>();
if v != 0 goto label;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext read()>();
label:
return;
}
public void close(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.handler.codec.http.websocketx.WebSocketCloseStatus v, v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$1 v;
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v, v, v, v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
io.netty.handler.codec.http.websocketx.CloseWebSocketFrame v;
boolean v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.channel.ChannelPromise;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.handler.codec.http.websocketx.WebSocketCloseStatus closeStatus>;
if v == null goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: boolean isActive()>();
if v != 0 goto label;
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise)>(v);
goto label;
label:
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.channel.ChannelPromise closeSent>;
if v != null goto label;
v = new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.handler.codec.http.websocketx.WebSocketCloseStatus closeStatus>;
specialinvoke v.<io.netty.handler.codec.http.websocketx.CloseWebSocketFrame: void <init>(io.netty.handler.codec.http.websocketx.WebSocketCloseStatus)>(v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void write(io.netty.channel.ChannelHandlerContext,java.lang.Object,io.netty.channel.ChannelPromise)>(v, v, v);
label:
virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void flush(io.netty.channel.ChannelHandlerContext)>(v);
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void applyCloseSentTimeout(io.netty.channel.ChannelHandlerContext)>(v);
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.channel.ChannelPromise closeSent>;
v = new io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$1;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$1: void <init>(io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler,io.netty.channel.ChannelHandlerContext,io.netty.channel.ChannelPromise)>(v, v, v);
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return;
}
public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.util.concurrent.PromiseNotifier v;
java.nio.channels.ClosedChannelException v;
io.netty.channel.ChannelFuture v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v, v, v, v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
java.lang.Object v;
io.netty.util.concurrent.Promise[] v;
boolean v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.channel.ChannelPromise closeSent>;
if v == null goto label;
staticinvoke <io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
v = new java.nio.channels.ClosedChannelException;
specialinvoke v.<java.nio.channels.ClosedChannelException: void <init>()>();
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
goto label;
label:
v = v instanceof io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise unvoid()>();
virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: void closeSent(io.netty.channel.ChannelPromise)>(v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object)>(v);
v = new io.netty.util.concurrent.PromiseNotifier;
v = newarray (io.netty.util.concurrent.Promise)[1];
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.channel.ChannelPromise closeSent>;
v[0] = v;
specialinvoke v.<io.netty.util.concurrent.PromiseNotifier: void <init>(boolean,io.netty.util.concurrent.Promise[])>(0, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
label:
return;
}
void closeSent(io.netty.channel.ChannelPromise)
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
io.netty.channel.ChannelPromise v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelPromise;
v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.channel.ChannelPromise closeSent> = v;
return;
}
private void applyCloseSentTimeout(io.netty.channel.ChannelHandlerContext)
{
io.netty.util.concurrent.EventExecutor v;
io.netty.util.concurrent.ScheduledFuture v;
long v, v;
java.util.concurrent.TimeUnit v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$3 v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$2 v;
byte v;
io.netty.channel.ChannelPromise v, v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
boolean v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.channel.ChannelPromise closeSent>;
v = interfaceinvoke v.<io.netty.channel.ChannelPromise: boolean isDone()>();
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: long forceCloseTimeoutMillis>;
v = v cmp 0L;
if v >= 0 goto label;
label:
return;
label:
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.util.concurrent.EventExecutor executor()>();
v = new io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$2;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$2: void <init>(io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler)>(v);
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: long forceCloseTimeoutMillis>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: io.netty.util.concurrent.ScheduledFuture schedule(java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v);
v = v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler: io.netty.channel.ChannelPromise closeSent>;
v = new io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$3;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler$3: void <init>(io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler,io.netty.util.concurrent.Future)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return;
}
protected io.netty.handler.codec.http.websocketx.WebSocketHandshakeException buildHandshakeException(java.lang.String)
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
java.lang.String v;
io.netty.handler.codec.http.websocketx.WebSocketHandshakeException v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: java.lang.String;
v = new io.netty.handler.codec.http.websocketx.WebSocketHandshakeException;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketHandshakeException: void <init>(java.lang.String)>(v);
return v;
}
public void bind(io.netty.channel.ChannelHandlerContext, java.net.SocketAddress, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
java.net.SocketAddress v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.net.SocketAddress;
v := @parameter: io.netty.channel.ChannelPromise;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture bind(java.net.SocketAddress,io.netty.channel.ChannelPromise)>(v, v);
return;
}
public void connect(io.netty.channel.ChannelHandlerContext, java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
java.net.SocketAddress v, v;
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.net.SocketAddress;
v := @parameter: io.netty.channel.ChannelPromise;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture connect(java.net.SocketAddress,java.net.SocketAddress,io.netty.channel.ChannelPromise)>(v, v, v);
return;
}
public void disconnect(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.channel.ChannelPromise;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture disconnect(io.netty.channel.ChannelPromise)>(v);
return;
}
public void deregister(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.channel.ChannelPromise;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture deregister(io.netty.channel.ChannelPromise)>(v);
return;
}
public void read(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
io.netty.channel.ChannelHandlerContext v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext read()>();
return;
}
public void flush(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
io.netty.channel.ChannelHandlerContext v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext flush()>();
return;
}
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable) throws java.lang.Exception
{
io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler v;
java.lang.Throwable v;
io.netty.channel.ChannelHandlerContext v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireExceptionCaught(java.lang.Throwable)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture close()>();
return;
}
}