public abstract class io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker extends java.lang.Object
{
protected static final io.netty.util.internal.logging.InternalLogger logger;
private final java.lang.String uri;
private final java.lang.String[] subprotocols;
private final io.netty.handler.codec.http.websocketx.WebSocketVersion version;
private final io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig decoderConfig;
private java.lang.String selectedSubprotocol;
public static final java.lang.String SUB_PROTOCOL_WILDCARD;
protected void <init>(io.netty.handler.codec.http.websocketx.WebSocketVersion, java.lang.String, java.lang.String, int)
{
io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig v;
io.netty.handler.codec.http.websocketx.WebSocketVersion v;
io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig$Builder v, v;
int v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
java.lang.String v, v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.handler.codec.http.websocketx.WebSocketVersion;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v = staticinvoke <io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig: io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig$Builder newBuilder()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig$Builder: io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig$Builder maxFramePayloadLength(int)>(v);
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig$Builder: io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig build()>();
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: void <init>(io.netty.handler.codec.http.websocketx.WebSocketVersion,java.lang.String,java.lang.String,io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig)>(v, v, v, v);
return;
}
protected void <init>(io.netty.handler.codec.http.websocketx.WebSocketVersion, java.lang.String, java.lang.String, io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig)
{
io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig v;
java.lang.String[] v, v;
io.netty.handler.codec.http.websocketx.WebSocketVersion v;
int v, v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
java.lang.Object v;
java.lang.String v, v, v, v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.handler.codec.http.websocketx.WebSocketVersion;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketVersion version> = v;
v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String uri> = v;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(",");
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v[v] = v;
v = v + 1;
goto label;
label:
v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String[] subprotocols> = v;
goto label;
label:
v = <io.netty.util.internal.EmptyArrays: java.lang.String[] EMPTY_STRINGS>;
v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String[] subprotocols> = v;
label:
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "decoderConfig");
v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig decoderConfig> = v;
return;
}
public java.lang.String uri()
{
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
java.lang.String v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String uri>;
return v;
}
public java.util.Set subprotocols()
{
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
java.lang.String[] v;
java.util.LinkedHashSet v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String[] subprotocols>;
staticinvoke <java.util.Collections: boolean addAll(java.util.Collection,java.lang.Object[])>(v, v);
return v;
}
public io.netty.handler.codec.http.websocketx.WebSocketVersion version()
{
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.handler.codec.http.websocketx.WebSocketVersion v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketVersion version>;
return v;
}
public int maxFramePayloadLength()
{
int v;
io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig decoderConfig>;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig: int maxFramePayloadLength()>();
return v;
}
public io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig decoderConfig()
{
io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketDecoderConfig decoderConfig>;
return v;
}
public io.netty.channel.ChannelFuture handshake(io.netty.channel.Channel, io.netty.handler.codec.http.FullHttpRequest)
{
io.netty.channel.Channel v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.handler.codec.http.FullHttpRequest v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.handler.codec.http.FullHttpRequest;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.channel.ChannelFuture handshake(io.netty.channel.Channel,io.netty.handler.codec.http.FullHttpRequest,io.netty.handler.codec.http.HttpHeaders,io.netty.channel.ChannelPromise)>(v, v, null, v);
return v;
}
public final io.netty.channel.ChannelFuture handshake(io.netty.channel.Channel, io.netty.handler.codec.http.FullHttpRequest, io.netty.handler.codec.http.HttpHeaders, io.netty.channel.ChannelPromise)
{
java.lang.IllegalStateException v;
io.netty.handler.codec.http.HttpHeaders v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker$1 v;
io.netty.channel.ChannelHandlerContext v, v, v;
io.netty.handler.codec.http.websocketx.WebSocketVersion v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.websocketx.WebSocketFrameDecoder v, v;
java.lang.String v, v, v, v;
boolean v;
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.FullHttpRequest v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v;
io.netty.handler.codec.http.FullHttpResponse v;
io.netty.util.internal.logging.InternalLogger v, v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.channel.ChannelHandler v, v;
io.netty.handler.codec.http.websocketx.WebSocketFrameEncoder v, v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.handler.codec.http.FullHttpRequest;
v := @parameter: io.netty.handler.codec.http.HttpHeaders;
v := @parameter: io.netty.channel.ChannelPromise;
v = <io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.util.internal.logging.InternalLogger logger>;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketVersion version()>();
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} WebSocket version {} server handshake", v, v);
label:
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.FullHttpResponse newHandshakeResponse(io.netty.handler.codec.http.FullHttpRequest,io.netty.handler.codec.http.HttpHeaders)>(v, v);
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandler get(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpObjectAggregator;");
if v == null goto label;
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandler remove(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpObjectAggregator;");
label:
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandler get(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpContentCompressor;");
if v == null goto label;
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandler remove(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpContentCompressor;");
label:
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandlerContext context(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpRequestDecoder;");
if v != null goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandlerContext context(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpServerCodec;");
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("No HttpDecoder and no HttpServerCodec in the pipeline");
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
interfaceinvoke v.<io.netty.handler.codec.http.FullHttpResponse: boolean release()>();
return v;
label:
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketFrameEncoder newWebSocketEncoder()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline addBefore(java.lang.String,java.lang.String,io.netty.channel.ChannelHandler)>(v, "wsencoder", v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketFrameDecoder newWebsocketDecoder()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline addBefore(java.lang.String,java.lang.String,io.netty.channel.ChannelHandler)>(v, "wsdecoder", v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
goto label;
label:
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketFrameDecoder newWebsocketDecoder()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandler replace(java.lang.String,java.lang.String,io.netty.channel.ChannelHandler)>(v, "wsdecoder", v);
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandlerContext context(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpResponseEncoder;");
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketFrameEncoder newWebSocketEncoder()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline addBefore(java.lang.String,java.lang.String,io.netty.channel.ChannelHandler)>(v, "wsencoder", v);
label:
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
v = new io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker$1;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker$1: void <init>(io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker,java.lang.String,io.netty.channel.ChannelPromise)>(v, v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return v;
}
public io.netty.channel.ChannelFuture handshake(io.netty.channel.Channel, io.netty.handler.codec.http.HttpRequest)
{
io.netty.channel.Channel v;
io.netty.handler.codec.http.HttpRequest v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.handler.codec.http.HttpRequest;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.channel.ChannelFuture handshake(io.netty.channel.Channel,io.netty.handler.codec.http.HttpRequest,io.netty.handler.codec.http.HttpHeaders,io.netty.channel.ChannelPromise)>(v, v, null, v);
return v;
}
public final io.netty.channel.ChannelFuture handshake(io.netty.channel.Channel, io.netty.handler.codec.http.HttpRequest, io.netty.handler.codec.http.HttpHeaders, io.netty.channel.ChannelPromise)
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
io.netty.handler.codec.http.HttpHeaders v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker$2 v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.websocketx.WebSocketVersion v, v, v;
io.netty.channel.ChannelPromise v;
java.lang.String v, v;
boolean v, v, v, v;
io.netty.handler.codec.http.HttpRequest v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v;
io.netty.util.internal.logging.InternalLogger v, v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
java.lang.Object v;
io.netty.handler.codec.http.HttpObjectAggregator v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.handler.codec.http.HttpRequest;
v := @parameter: io.netty.handler.codec.http.HttpHeaders;
v := @parameter: io.netty.channel.ChannelPromise;
v = v instanceof io.netty.handler.codec.http.FullHttpRequest;
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.channel.ChannelFuture handshake(io.netty.channel.Channel,io.netty.handler.codec.http.FullHttpRequest,io.netty.handler.codec.http.HttpHeaders,io.netty.channel.ChannelPromise)>(v, v, v, v);
return v;
label:
v = <io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.util.internal.logging.InternalLogger logger>;
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketVersion version()>();
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("{} WebSocket version {} server handshake", v, v);
label:
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandlerContext context(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpRequestDecoder;");
if v != null goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandlerContext context(java.lang.Class)>(class "Lio/netty/handler/codec/http/HttpServerCodec;");
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("No HttpDecoder and no HttpServerCodec in the pipeline");
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return v;
label:
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
v = staticinvoke <io.netty.handler.codec.http.HttpUtil: boolean isContentLengthSet(io.netty.handler.codec.http.HttpMessage)>(v);
if v != 0 goto label;
v = staticinvoke <io.netty.handler.codec.http.HttpUtil: boolean isTransferEncodingChunked(io.netty.handler.codec.http.HttpMessage)>(v);
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.handler.codec.http.websocketx.WebSocketVersion version>;
v = <io.netty.handler.codec.http.websocketx.WebSocketVersion: io.netty.handler.codec.http.websocketx.WebSocketVersion V00>;
if v != v goto label;
label:
v = "httpAggregator";
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: java.lang.String name()>();
v = new io.netty.handler.codec.http.HttpObjectAggregator;
specialinvoke v.<io.netty.handler.codec.http.HttpObjectAggregator: void <init>(int)>(8192);
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline addAfter(java.lang.String,java.lang.String,io.netty.channel.ChannelHandler)>(v, "httpAggregator", v);
label:
v = new io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker$2;
specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker$2: void <init>(io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker,io.netty.channel.ChannelPromise,io.netty.channel.Channel,io.netty.handler.codec.http.HttpHeaders)>(v, v, v, v);
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline addAfter(java.lang.String,java.lang.String,io.netty.channel.ChannelHandler)>(v, "handshaker", v);
label:
v = staticinvoke <io.netty.util.ReferenceCountUtil: java.lang.Object retain(java.lang.Object)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
label:
return v;
catch java.lang.Throwable from label to label with label;
}
protected abstract io.netty.handler.codec.http.FullHttpResponse newHandshakeResponse(io.netty.handler.codec.http.FullHttpRequest, io.netty.handler.codec.http.HttpHeaders);
public io.netty.channel.ChannelFuture close(io.netty.channel.Channel, io.netty.handler.codec.http.websocketx.CloseWebSocketFrame)
{
io.netty.channel.Channel v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.handler.codec.http.websocketx.CloseWebSocketFrame v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "channel");
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.channel.ChannelFuture close(io.netty.channel.Channel,io.netty.handler.codec.http.websocketx.CloseWebSocketFrame,io.netty.channel.ChannelPromise)>(v, v, v);
return v;
}
public io.netty.channel.ChannelFuture close(io.netty.channel.Channel, io.netty.handler.codec.http.websocketx.CloseWebSocketFrame, io.netty.channel.ChannelPromise)
{
io.netty.channel.Channel v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.handler.codec.http.websocketx.CloseWebSocketFrame v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
v := @parameter: io.netty.channel.ChannelPromise;
v = specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.channel.ChannelFuture close0(io.netty.channel.ChannelOutboundInvoker,io.netty.handler.codec.http.websocketx.CloseWebSocketFrame,io.netty.channel.ChannelPromise)>(v, v, v);
return v;
}
public io.netty.channel.ChannelFuture close(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.CloseWebSocketFrame)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.handler.codec.http.websocketx.CloseWebSocketFrame v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "ctx");
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.channel.ChannelFuture close(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.http.websocketx.CloseWebSocketFrame,io.netty.channel.ChannelPromise)>(v, v, v);
return v;
}
public io.netty.channel.ChannelFuture close(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.CloseWebSocketFrame, io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.netty.channel.ChannelFutureListener v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.handler.codec.http.websocketx.CloseWebSocketFrame v;
io.netty.channel.ChannelFuture v, v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
v := @parameter: io.netty.channel.ChannelPromise;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "ctx");
v = specialinvoke v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.channel.ChannelFuture close0(io.netty.channel.ChannelOutboundInvoker,io.netty.handler.codec.http.websocketx.CloseWebSocketFrame,io.netty.channel.ChannelPromise)>(v, v, v);
v = <io.netty.channel.ChannelFutureListener: io.netty.channel.ChannelFutureListener CLOSE>;
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return v;
}
private io.netty.channel.ChannelFuture close0(io.netty.channel.ChannelOutboundInvoker, io.netty.handler.codec.http.websocketx.CloseWebSocketFrame, io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
io.netty.channel.ChannelFutureListener v;
io.netty.channel.ChannelOutboundInvoker v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
io.netty.handler.codec.http.websocketx.CloseWebSocketFrame v;
io.netty.channel.ChannelFuture v, v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: io.netty.channel.ChannelOutboundInvoker;
v := @parameter: io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
v := @parameter: io.netty.channel.ChannelPromise;
v = interfaceinvoke v.<io.netty.channel.ChannelOutboundInvoker: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
v = <io.netty.channel.ChannelFutureListener: io.netty.channel.ChannelFutureListener CLOSE>;
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return v;
}
protected java.lang.String selectSubprotocol(java.lang.String)
{
java.lang.String[] v, v, v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v, v;
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v := @parameter: java.lang.String;
if v == null goto label;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String[] subprotocols>;
v = lengthof v;
if v != 0 goto label;
label:
return null;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(",");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String[] subprotocols>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = "*";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String selectedSubprotocol> = v;
return v;
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return null;
}
public java.lang.String selectedSubprotocol()
{
io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker v;
java.lang.String v;
v := @this: io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
v = v.<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: java.lang.String selectedSubprotocol>;
return v;
}
protected abstract io.netty.handler.codec.http.websocketx.WebSocketFrameDecoder newWebsocketDecoder();
protected abstract io.netty.handler.codec.http.websocketx.WebSocketFrameEncoder newWebSocketEncoder();
static void <clinit>()
{
io.netty.util.internal.logging.InternalLogger v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/handler/codec/http/websocketx/WebSocketServerHandshaker;");
<io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker: io.netty.util.internal.logging.InternalLogger logger> = v;
return;
}
}