public abstract class com.mongodb.internal.connection.AsynchronousChannelStream implements com.mongodb.connection.Stream
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.mongodb.internal.connection.AsynchronousChannelStream
super_class: java.lang.Object
{
private final com.mongodb.ServerAddress serverAddress;
descriptor: Lcom/mongodb/ServerAddress;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.SocketSettings settings;
descriptor: Lcom/mongodb/connection/SocketSettings;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.BufferProvider bufferProvider;
descriptor: Lcom/mongodb/connection/BufferProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile com.mongodb.internal.connection.ExtendedAsynchronousByteChannel channel;
descriptor: Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean isClosed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
public void <init>(com.mongodb.ServerAddress, com.mongodb.connection.SocketSettings, com.mongodb.connection.BufferProvider);
descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/connection/SocketSettings;Lcom/mongodb/connection/BufferProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.mongodb.internal.connection.AsynchronousChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
2: aload 0
aload 2
putfield com.mongodb.internal.connection.AsynchronousChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
3: aload 0
aload 3
putfield com.mongodb.internal.connection.AsynchronousChannelStream.bufferProvider:Lcom/mongodb/connection/BufferProvider;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 5 1 serverAddress Lcom/mongodb/ServerAddress;
0 5 2 settings Lcom/mongodb/connection/SocketSettings;
0 5 3 bufferProvider Lcom/mongodb/connection/BufferProvider;
MethodParameters:
Name Flags
serverAddress final
settings final
bufferProvider final
public com.mongodb.ServerAddress getServerAddress();
descriptor: ()Lcom/mongodb/ServerAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
public com.mongodb.connection.SocketSettings getSettings();
descriptor: ()Lcom/mongodb/connection/SocketSettings;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
public com.mongodb.connection.BufferProvider getBufferProvider();
descriptor: ()Lcom/mongodb/connection/BufferProvider;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.bufferProvider:Lcom/mongodb/connection/BufferProvider;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
public synchronized com.mongodb.internal.connection.ExtendedAsynchronousByteChannel getChannel();
descriptor: ()Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
protected synchronized void setChannel(com.mongodb.internal.connection.ExtendedAsynchronousByteChannel);
descriptor: (Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;)V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "current channel is null"
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: com.mongodb.internal.connection.AsynchronousChannelStream com.mongodb.internal.connection.ExtendedAsynchronousByteChannel
StackMap stack: java.lang.String int
2: invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
3: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.isClosed:Z
ifeq 6
4: aload 0
aload 1
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream.closeChannel:(Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;)V
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 8 1 channel Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
MethodParameters:
Name Flags
channel final
public void writeAsync(java.util.List<org.bson.ByteBuf>, com.mongodb.connection.AsyncCompletionHandler<java.lang.Void>);
descriptor: (Ljava/util/List;Lcom/mongodb/connection/AsyncCompletionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new com.mongodb.internal.connection.AsynchronousChannelStream$AsyncWritableByteChannelAdapter
dup
aload 0
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$AsyncWritableByteChannelAdapter.<init>:(Lcom/mongodb/internal/connection/AsynchronousChannelStream;)V
astore 3
start local 3 1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 2: aload 0
aload 3
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.ByteBuf
new com.mongodb.internal.connection.AsynchronousChannelStream$1
dup
aload 0
aload 4
aload 3
aload 2
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$1.<init>:(Lcom/mongodb/internal/connection/AsynchronousChannelStream;Ljava/util/Iterator;Lcom/mongodb/internal/connection/AsynchronousChannelStream$AsyncWritableByteChannelAdapter;Lcom/mongodb/connection/AsyncCompletionHandler;)V
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream.pipeOneBuffer:(Lcom/mongodb/internal/connection/AsynchronousChannelStream$AsyncWritableByteChannelAdapter;Lorg/bson/ByteBuf;Lcom/mongodb/connection/AsyncCompletionHandler;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 4 1 buffers Ljava/util/List<Lorg/bson/ByteBuf;>;
0 4 2 handler Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;
1 4 3 byteChannel Lcom/mongodb/internal/connection/AsynchronousChannelStream$AsyncWritableByteChannelAdapter;
2 4 4 iter Ljava/util/Iterator<Lorg/bson/ByteBuf;>;
Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
buffers final
handler final
public void readAsync(int, com.mongodb.connection.AsyncCompletionHandler<org.bson.ByteBuf>);
descriptor: (ILcom/mongodb/connection/AsyncCompletionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.bufferProvider:Lcom/mongodb/connection/BufferProvider;
iload 1
invokeinterface com.mongodb.connection.BufferProvider.getBuffer:(I)Lorg/bson/ByteBuf;
astore 3
start local 3 1: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
aload 3
invokeinterface org.bson.ByteBuf.asNIO:()Ljava/nio/ByteBuffer;
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.mongodb.connection.SocketSettings.getReadTimeout:(Ljava/util/concurrent/TimeUnit;)I
i2l
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
aconst_null
2: new com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler
dup
aload 0
aload 3
aload 2
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.<init>:(Lcom/mongodb/internal/connection/AsynchronousChannelStream;Lorg/bson/ByteBuf;Lcom/mongodb/connection/AsyncCompletionHandler;)V
3: invokeinterface com.mongodb.internal.connection.ExtendedAsynchronousByteChannel.read:(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 5 1 numBytes I
0 5 2 handler Lcom/mongodb/connection/AsyncCompletionHandler<Lorg/bson/ByteBuf;>;
1 5 3 buffer Lorg/bson/ByteBuf;
Signature: (ILcom/mongodb/connection/AsyncCompletionHandler<Lorg/bson/ByteBuf;>;)V
MethodParameters:
Name Flags
numBytes final
handler final
public void open();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler
dup
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler.<init>:()V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream.openAsync:(Lcom/mongodb/connection/AsyncCompletionHandler;)V
2: aload 1
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler.getOpen:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
1 4 1 handler Lcom/mongodb/internal/connection/AsynchronousChannelStream$FutureAsyncCompletionHandler<Ljava/lang/Void;>;
Exceptions:
throws java.io.IOException
public void write(java.util.List<org.bson.ByteBuf>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler
dup
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler.<init>:()V
astore 2
start local 2 1: aload 0
aload 1
aload 2
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream.writeAsync:(Ljava/util/List;Lcom/mongodb/connection/AsyncCompletionHandler;)V
2: aload 2
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler.getWrite:()V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 4 1 buffers Ljava/util/List<Lorg/bson/ByteBuf;>;
1 4 2 handler Lcom/mongodb/internal/connection/AsynchronousChannelStream$FutureAsyncCompletionHandler<Ljava/lang/Void;>;
Exceptions:
throws java.io.IOException
Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;)V
MethodParameters:
Name Flags
buffers final
public org.bson.ByteBuf read(int);
descriptor: (I)Lorg/bson/ByteBuf;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler
dup
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler.<init>:()V
astore 2
start local 2 1: aload 0
iload 1
aload 2
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream.readAsync:(ILcom/mongodb/connection/AsyncCompletionHandler;)V
2: aload 2
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler.getRead:()Ljava/lang/Object;
checkcast org.bson.ByteBuf
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 3 1 numBytes I
1 3 2 handler Lcom/mongodb/internal/connection/AsynchronousChannelStream$FutureAsyncCompletionHandler<Lorg/bson/ByteBuf;>;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
numBytes final
public com.mongodb.ServerAddress getAddress();
descriptor: ()Lcom/mongodb/ServerAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.mongodb.internal.connection.AsynchronousChannelStream.isClosed:Z
1: aload 0
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream.closeChannel:(Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
aconst_null
putfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
Exception table:
from to target type
1 3 3 any
private void closeChannel(com.mongodb.internal.connection.ExtendedAsynchronousByteChannel);
descriptor: (Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 4
1: aload 1
invokeinterface com.mongodb.internal.connection.ExtendedAsynchronousByteChannel.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 5 1 channel Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
Exception table:
from to target type
0 2 3 Class java.io.IOException
MethodParameters:
Name Flags
channel final
public boolean isClosed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.isClosed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
public org.bson.ByteBuf getBuffer(int);
descriptor: (I)Lorg/bson/ByteBuf;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream.bufferProvider:Lcom/mongodb/connection/BufferProvider;
iload 1
invokeinterface com.mongodb.connection.BufferProvider.getBuffer:(I)Lorg/bson/ByteBuf;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 1 1 size I
MethodParameters:
Name Flags
size final
private void pipeOneBuffer(com.mongodb.internal.connection.AsynchronousChannelStream$AsyncWritableByteChannelAdapter, org.bson.ByteBuf, com.mongodb.connection.AsyncCompletionHandler<java.lang.Void>);
descriptor: (Lcom/mongodb/internal/connection/AsynchronousChannelStream$AsyncWritableByteChannelAdapter;Lorg/bson/ByteBuf;Lcom/mongodb/connection/AsyncCompletionHandler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
invokeinterface org.bson.ByteBuf.asNIO:()Ljava/nio/ByteBuffer;
new com.mongodb.internal.connection.AsynchronousChannelStream$2
dup
aload 0
aload 2
aload 1
aload 3
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$2.<init>:(Lcom/mongodb/internal/connection/AsynchronousChannelStream;Lorg/bson/ByteBuf;Lcom/mongodb/internal/connection/AsynchronousChannelStream$AsyncWritableByteChannelAdapter;Lcom/mongodb/connection/AsyncCompletionHandler;)V
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$AsyncWritableByteChannelAdapter.write:(Ljava/nio/ByteBuffer;Lcom/mongodb/connection/AsyncCompletionHandler;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream;
0 2 1 byteChannel Lcom/mongodb/internal/connection/AsynchronousChannelStream$AsyncWritableByteChannelAdapter;
0 2 2 byteBuffer Lorg/bson/ByteBuf;
0 2 3 outerHandler Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;
Signature: (Lcom/mongodb/internal/connection/AsynchronousChannelStream$AsyncWritableByteChannelAdapter;Lorg/bson/ByteBuf;Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
byteChannel final
byteBuffer final
outerHandler final
}
SourceFile: "AsynchronousChannelStream.java"
NestMembers:
com.mongodb.internal.connection.AsynchronousChannelStream$1 com.mongodb.internal.connection.AsynchronousChannelStream$2 com.mongodb.internal.connection.AsynchronousChannelStream$AsyncWritableByteChannelAdapter com.mongodb.internal.connection.AsynchronousChannelStream$AsyncWritableByteChannelAdapter$WriteCompletionHandler com.mongodb.internal.connection.AsynchronousChannelStream$BaseCompletionHandler com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler
InnerClasses:
com.mongodb.internal.connection.AsynchronousChannelStream$1
com.mongodb.internal.connection.AsynchronousChannelStream$2
private AsyncWritableByteChannelAdapter = com.mongodb.internal.connection.AsynchronousChannelStream$AsyncWritableByteChannelAdapter of com.mongodb.internal.connection.AsynchronousChannelStream
private abstract BaseCompletionHandler = com.mongodb.internal.connection.AsynchronousChannelStream$BaseCompletionHandler of com.mongodb.internal.connection.AsynchronousChannelStream
private final BasicCompletionHandler = com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler of com.mongodb.internal.connection.AsynchronousChannelStream
FutureAsyncCompletionHandler = com.mongodb.internal.connection.AsynchronousChannelStream$FutureAsyncCompletionHandler of com.mongodb.internal.connection.AsynchronousChannelStream