class org.xnio.channels.AssembledChannel$1 implements org.xnio.ChannelListener<org.xnio.channels.CloseableChannel>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.xnio.channels.AssembledChannel$1
super_class: java.lang.Object
{
final org.xnio.channels.AssembledChannel this$0;
descriptor: Lorg/xnio/channels/AssembledChannel;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(org.xnio.channels.AssembledChannel);
descriptor: (Lorg/xnio/channels/AssembledChannel;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // org.xnio.channels.AssembledChannel$1 this
0: .line 46
aload 0 /* this */
aload 1
putfield org.xnio.channels.AssembledChannel$1.this$0:Lorg/xnio/channels/AssembledChannel;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.xnio.channels.AssembledChannel$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/channels/AssembledChannel$1;
MethodParameters:
Name Flags
this$0 final
public void handleEvent(org.xnio.channels.CloseableChannel);
descriptor: (Lorg/xnio/channels/CloseableChannel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 // org.xnio.channels.AssembledChannel$1 this
start local 1 // org.xnio.channels.CloseableChannel channel
0: .line 49
aload 0 /* this */
getfield org.xnio.channels.AssembledChannel$1.this$0:Lorg/xnio/channels/AssembledChannel;
astore 4 /* obj */
start local 4 // org.xnio.channels.AssembledChannel obj
1: .line 51
StackMap locals: org.xnio.channels.AssembledChannel$1 org.xnio.channels.CloseableChannel top top org.xnio.channels.AssembledChannel
StackMap stack:
getstatic org.xnio.channels.AssembledChannel.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 4 /* obj */
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
istore 3 /* oldState */
start local 3 // int oldState
2: .line 52
iload 3 /* oldState */
iconst_3
if_icmpne 4
3: .line 53
return
4: .line 55
StackMap locals: org.xnio.channels.AssembledChannel$1 org.xnio.channels.CloseableChannel top int org.xnio.channels.AssembledChannel
StackMap stack:
iload 3 /* oldState */
istore 2 /* newState */
start local 2 // int newState
5: .line 56
aload 1 /* channel */
aload 0 /* this */
getfield org.xnio.channels.AssembledChannel$1.this$0:Lorg/xnio/channels/AssembledChannel;
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
if_acmpne 7
6: .line 57
iload 2 /* newState */
iconst_1
ior
istore 2 /* newState */
7: .line 59
StackMap locals: org.xnio.channels.AssembledChannel$1 org.xnio.channels.CloseableChannel int int org.xnio.channels.AssembledChannel
StackMap stack:
aload 1 /* channel */
aload 0 /* this */
getfield org.xnio.channels.AssembledChannel$1.this$0:Lorg/xnio/channels/AssembledChannel;
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
if_acmpne 9
8: .line 60
iload 2 /* newState */
iconst_2
ior
istore 2 /* newState */
9: .line 62
StackMap locals:
StackMap stack:
getstatic org.xnio.channels.AssembledChannel.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 4 /* obj */
iload 3 /* oldState */
iload 2 /* newState */
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 1
10: .line 63
iload 2 /* newState */
iconst_3
if_icmpne 12
11: .line 64
aload 4 /* obj */
aload 0 /* this */
getfield org.xnio.channels.AssembledChannel$1.this$0:Lorg/xnio/channels/AssembledChannel;
getfield org.xnio.channels.AssembledChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
pop
12: .line 66
StackMap locals:
StackMap stack:
return
end local 4 // org.xnio.channels.AssembledChannel obj
end local 3 // int oldState
end local 2 // int newState
end local 1 // org.xnio.channels.CloseableChannel channel
end local 0 // org.xnio.channels.AssembledChannel$1 this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/xnio/channels/AssembledChannel$1;
0 13 1 channel Lorg/xnio/channels/CloseableChannel;
5 13 2 newState I
2 13 3 oldState I
1 13 4 obj Lorg/xnio/channels/AssembledChannel;
MethodParameters:
Name Flags
channel final
public void handleEvent(java.nio.channels.Channel);
descriptor: (Ljava/nio/channels/Channel;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: .line 1
aload 0
aload 1
checkcast org.xnio.channels.CloseableChannel
invokevirtual org.xnio.channels.AssembledChannel$1.handleEvent:(Lorg/xnio/channels/CloseableChannel;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Lorg/xnio/ChannelListener<Lorg/xnio/channels/CloseableChannel;>;
SourceFile: "AssembledChannel.java"
EnclosingMethod: org.xnio.channels.AssembledChannel
NestHost: org.xnio.channels.AssembledChannel
InnerClasses:
public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener
org.xnio.channels.AssembledChannel$1