public final class com.mongodb.internal.connection.AsynchronousSocketChannelStream extends com.mongodb.internal.connection.AsynchronousChannelStream implements com.mongodb.connection.Stream
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.mongodb.internal.connection.AsynchronousSocketChannelStream
super_class: com.mongodb.internal.connection.AsynchronousChannelStream
{
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 java.nio.channels.AsynchronousChannelGroup group;
descriptor: Ljava/nio/channels/AsynchronousChannelGroup;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(com.mongodb.ServerAddress, com.mongodb.connection.SocketSettings, com.mongodb.connection.BufferProvider, java.nio.channels.AsynchronousChannelGroup);
descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/connection/SocketSettings;Lcom/mongodb/connection/BufferProvider;Ljava/nio/channels/AsynchronousChannelGroup;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/connection/SocketSettings;Lcom/mongodb/connection/BufferProvider;)V
1: aload 0
aload 1
putfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
2: aload 0
aload 2
putfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
3: aload 0
aload 4
putfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.group:Ljava/nio/channels/AsynchronousChannelGroup;
4: return
end local 4 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/AsynchronousSocketChannelStream;
0 5 1 serverAddress Lcom/mongodb/ServerAddress;
0 5 2 settings Lcom/mongodb/connection/SocketSettings;
0 5 3 bufferProvider Lcom/mongodb/connection/BufferProvider;
0 5 4 group Ljava/nio/channels/AsynchronousChannelGroup;
MethodParameters:
Name Flags
serverAddress final
settings final
bufferProvider final
group final
public void openAsync(com.mongodb.connection.AsyncCompletionHandler<java.lang.Void>);
descriptor: (Lcom/mongodb/connection/AsyncCompletionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: ldc "unopened"
aload 0
invokevirtual com.mongodb.internal.connection.AsynchronousSocketChannelStream.getChannel:()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.AsynchronousSocketChannelStream com.mongodb.connection.AsyncCompletionHandler
StackMap stack: java.lang.String int
2: invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
3: aload 0
aload 1
new java.util.LinkedList
dup
aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
invokevirtual com.mongodb.ServerAddress.getSocketAddresses:()Ljava/util/List;
invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
invokevirtual com.mongodb.internal.connection.AsynchronousSocketChannelStream.initializeSocketChannel:(Lcom/mongodb/connection/AsyncCompletionHandler;Ljava/util/Queue;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/AsynchronousSocketChannelStream;
0 5 1 handler Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;
Signature: (Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
handler final
private void initializeSocketChannel(com.mongodb.connection.AsyncCompletionHandler<java.lang.Void>, java.util.Queue<java.net.SocketAddress>);
descriptor: (Lcom/mongodb/connection/AsyncCompletionHandler;Ljava/util/Queue;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 3
1: aload 1
new com.mongodb.MongoSocketException
dup
ldc "Exception opening socket"
aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
2: goto 20
3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.net.SocketAddress
astore 3
start local 3 4: aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.group:Ljava/nio/channels/AsynchronousChannelGroup;
invokestatic java.nio.channels.AsynchronousSocketChannel.open:(Ljava/nio/channels/AsynchronousChannelGroup;)Ljava/nio/channels/AsynchronousSocketChannel;
astore 4
start local 4 5: aload 4
getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual java.nio.channels.AsynchronousSocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/AsynchronousSocketChannel;
pop
6: aload 4
getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.isKeepAlive:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual java.nio.channels.AsynchronousSocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/AsynchronousSocketChannel;
pop
7: aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getReceiveBufferSize:()I
ifle 9
8: aload 4
getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getReceiveBufferSize:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.nio.channels.AsynchronousSocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/AsynchronousSocketChannel;
pop
9: StackMap locals: java.net.SocketAddress java.nio.channels.AsynchronousSocketChannel
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getSendBufferSize:()I
ifle 11
10: aload 4
getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getSendBufferSize:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.nio.channels.AsynchronousSocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/AsynchronousSocketChannel;
pop
11: StackMap locals:
StackMap stack:
aload 4
aload 3
aconst_null
12: new com.mongodb.internal.connection.AsynchronousSocketChannelStream$OpenCompletionHandler
dup
aload 0
aload 1
aload 2
aload 4
invokespecial com.mongodb.internal.connection.AsynchronousSocketChannelStream$OpenCompletionHandler.<init>:(Lcom/mongodb/internal/connection/AsynchronousSocketChannelStream;Lcom/mongodb/connection/AsyncCompletionHandler;Ljava/util/Queue;Ljava/nio/channels/AsynchronousSocketChannel;)V
13: invokevirtual java.nio.channels.AsynchronousSocketChannel.connect:(Ljava/net/SocketAddress;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
end local 4 14: goto 20
StackMap locals: com.mongodb.internal.connection.AsynchronousSocketChannelStream com.mongodb.connection.AsyncCompletionHandler java.util.Queue java.net.SocketAddress
StackMap stack: java.io.IOException
15: astore 4
start local 4 16: aload 1
new com.mongodb.MongoSocketOpenException
dup
ldc "Exception opening socket"
aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
aload 4
invokespecial com.mongodb.MongoSocketOpenException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;Ljava/lang/Throwable;)V
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
end local 4 17: goto 20
18: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 19: aload 1
aload 4
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
end local 4 end local 3 20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/mongodb/internal/connection/AsynchronousSocketChannelStream;
0 21 1 handler Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;
0 21 2 socketAddressQueue Ljava/util/Queue<Ljava/net/SocketAddress;>;
4 20 3 socketAddress Ljava/net/SocketAddress;
5 14 4 attemptConnectionChannel Ljava/nio/channels/AsynchronousSocketChannel;
16 17 4 e Ljava/io/IOException;
19 20 4 t Ljava/lang/Throwable;
Exception table:
from to target type
4 14 15 Class java.io.IOException
4 14 18 Class java.lang.Throwable
Signature: (Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;Ljava/util/Queue<Ljava/net/SocketAddress;>;)V
MethodParameters:
Name Flags
handler final
socketAddressQueue final
public java.nio.channels.AsynchronousChannelGroup getGroup();
descriptor: ()Ljava/nio/channels/AsynchronousChannelGroup;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.AsynchronousSocketChannelStream.group:Ljava/nio/channels/AsynchronousChannelGroup;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/AsynchronousSocketChannelStream;
}
SourceFile: "AsynchronousSocketChannelStream.java"
NestMembers:
com.mongodb.internal.connection.AsynchronousSocketChannelStream$AsynchronousSocketChannelAdapter com.mongodb.internal.connection.AsynchronousSocketChannelStream$OpenCompletionHandler
InnerClasses:
private final AsynchronousSocketChannelAdapter = com.mongodb.internal.connection.AsynchronousSocketChannelStream$AsynchronousSocketChannelAdapter of com.mongodb.internal.connection.AsynchronousSocketChannelStream
private OpenCompletionHandler = com.mongodb.internal.connection.AsynchronousSocketChannelStream$OpenCompletionHandler of com.mongodb.internal.connection.AsynchronousSocketChannelStream