public class org.xnio.channels.AssembledChannel implements org.xnio.channels.CloseableChannel
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.xnio.channels.AssembledChannel
super_class: java.lang.Object
{
private final org.xnio.channels.SuspendableReadChannel readChannel;
descriptor: Lorg/xnio/channels/SuspendableReadChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.channels.SuspendableWriteChannel writeChannel;
descriptor: Lorg/xnio/channels/SuspendableWriteChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.ChannelListener$SimpleSetter<org.xnio.channels.AssembledChannel> closeSetter;
descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/ChannelListener$SimpleSetter<Lorg/xnio/channels/AssembledChannel;>;
private final org.xnio.ChannelListener<org.xnio.channels.CloseableChannel> listener;
descriptor: Lorg/xnio/ChannelListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/ChannelListener<Lorg/xnio/channels/CloseableChannel;>;
private volatile int state;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.xnio.channels.AssembledChannel> stateUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/xnio/channels/AssembledChannel;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/xnio/channels/AssembledChannel;
ldc "state"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.xnio.channels.AssembledChannel.stateUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.xnio.channels.SuspendableReadChannel, org.xnio.channels.SuspendableWriteChannel);
descriptor: (Lorg/xnio/channels/SuspendableReadChannel;Lorg/xnio/channels/SuspendableWriteChannel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.xnio.ChannelListener$SimpleSetter
dup
invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
putfield org.xnio.channels.AssembledChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
2: aload 0
new org.xnio.channels.AssembledChannel$1
dup
aload 0
invokespecial org.xnio.channels.AssembledChannel$1.<init>:(Lorg/xnio/channels/AssembledChannel;)V
putfield org.xnio.channels.AssembledChannel.listener:Lorg/xnio/ChannelListener;
3: aload 0
iconst_0
putfield org.xnio.channels.AssembledChannel.state:I
4: aload 0
aload 1
putfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
5: aload 0
aload 2
putfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
6: aload 1
invokeinterface org.xnio.channels.SuspendableReadChannel.getWorker:()Lorg/xnio/XnioWorker;
aload 2
invokeinterface org.xnio.channels.SuspendableWriteChannel.getWorker:()Lorg/xnio/XnioWorker;
if_acmpeq 8
7: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
invokeinterface org.xnio._private.Messages.differentWorkers:()Ljava/lang/IllegalArgumentException;
athrow
8: StackMap locals: org.xnio.channels.AssembledChannel org.xnio.channels.SuspendableReadChannel org.xnio.channels.SuspendableWriteChannel
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/xnio/channels/AssembledChannel;
0 9 1 readChannel Lorg/xnio/channels/SuspendableReadChannel;
0 9 2 writeChannel Lorg/xnio/channels/SuspendableWriteChannel;
MethodParameters:
Name Flags
readChannel final
writeChannel final
public org.xnio.ChannelListener$Setter<? extends org.xnio.channels.CloseableChannel> getCloseSetter();
descriptor: ()Lorg/xnio/ChannelListener$Setter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
invokeinterface org.xnio.channels.SuspendableReadChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
aload 0
getfield org.xnio.channels.AssembledChannel.listener:Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
1: aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
invokeinterface org.xnio.channels.SuspendableWriteChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
aload 0
getfield org.xnio.channels.AssembledChannel.listener:Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
2: aload 0
getfield org.xnio.channels.AssembledChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/channels/AssembledChannel;
Signature: ()Lorg/xnio/ChannelListener$Setter<+Lorg/xnio/channels/CloseableChannel;>;
public org.xnio.XnioWorker getWorker();
descriptor: ()Lorg/xnio/XnioWorker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
invokeinterface org.xnio.channels.SuspendableReadChannel.getWorker:()Lorg/xnio/XnioWorker;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/channels/AssembledChannel;
public org.xnio.XnioIoThread getIoThread();
descriptor: ()Lorg/xnio/XnioIoThread;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
invokeinterface org.xnio.channels.SuspendableReadChannel.getIoThread:()Lorg/xnio/XnioIoThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/channels/AssembledChannel;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
invokeinterface org.xnio.channels.SuspendableReadChannel.close:()V
1: aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
invokeinterface org.xnio.channels.SuspendableWriteChannel.close:()V
2: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
5: aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
8: aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/xnio/channels/AssembledChannel;
Exception table:
from to target type
0 3 3 any
Exceptions:
throws java.io.IOException
public boolean isOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
invokeinterface org.xnio.channels.SuspendableReadChannel.isOpen:()Z
ifeq 1
aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
invokeinterface org.xnio.channels.SuspendableWriteChannel.isOpen:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/channels/AssembledChannel;
public boolean supportsOption(org.xnio.Option<?>);
descriptor: (Lorg/xnio/Option;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
aload 1
invokeinterface org.xnio.channels.SuspendableReadChannel.supportsOption:(Lorg/xnio/Option;)Z
ifne 1
aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
aload 1
invokeinterface org.xnio.channels.SuspendableWriteChannel.supportsOption:(Lorg/xnio/Option;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/channels/AssembledChannel;
0 2 1 option Lorg/xnio/Option<*>;
Signature: (Lorg/xnio/Option<*>;)Z
MethodParameters:
Name Flags
option final
private static <T> T nonNullOrFirst(T, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnull 1
aload 0
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 one TT;
0 3 1 two TT;
Signature: <T:Ljava/lang/Object;>(TT;TT;)TT;
MethodParameters:
Name Flags
one
two
public <T> T getOption(org.xnio.Option<T>);
descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
aload 1
invokeinterface org.xnio.channels.SuspendableReadChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
aload 1
invokeinterface org.xnio.channels.SuspendableWriteChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
invokestatic org.xnio.channels.AssembledChannel.nonNullOrFirst:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/channels/AssembledChannel;
0 1 1 option Lorg/xnio/Option<TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
MethodParameters:
Name Flags
option final
public <T> T setOption(org.xnio.Option<T>, );
descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.xnio.channels.AssembledChannel.readChannel:Lorg/xnio/channels/SuspendableReadChannel;
aload 1
aload 2
invokeinterface org.xnio.channels.SuspendableReadChannel.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield org.xnio.channels.AssembledChannel.writeChannel:Lorg/xnio/channels/SuspendableWriteChannel;
aload 1
aload 2
invokeinterface org.xnio.channels.SuspendableWriteChannel.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.xnio.channels.AssembledChannel.nonNullOrFirst:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/channels/AssembledChannel;
0 1 1 option Lorg/xnio/Option<TT;>;
0 1 2 value TT;
Exceptions:
throws java.lang.IllegalArgumentException, java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
MethodParameters:
Name Flags
option final
value final
}
SourceFile: "AssembledChannel.java"
NestMembers:
org.xnio.channels.AssembledChannel$1
InnerClasses:
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener
org.xnio.channels.AssembledChannel$1