public final class com.mongodb.internal.connection.DnsMultiServerCluster extends com.mongodb.internal.connection.AbstractMultiServerCluster
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.internal.connection.DnsMultiServerCluster
  super_class: com.mongodb.internal.connection.AbstractMultiServerCluster
{
  private final com.mongodb.internal.connection.DnsSrvRecordMonitor dnsSrvRecordMonitor;
    descriptor: Lcom/mongodb/internal/connection/DnsSrvRecordMonitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile com.mongodb.MongoException srvResolutionException;
    descriptor: Lcom/mongodb/MongoException;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  public void <init>(com.mongodb.connection.ClusterId, com.mongodb.connection.ClusterSettings, com.mongodb.internal.connection.ClusterableServerFactory, com.mongodb.internal.connection.DnsSrvRecordMonitorFactory);
    descriptor: (Lcom/mongodb/connection/ClusterId;Lcom/mongodb/connection/ClusterSettings;Lcom/mongodb/internal/connection/ClusterableServerFactory;Lcom/mongodb/internal/connection/DnsSrvRecordMonitorFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.internal.connection.DnsMultiServerCluster this
        start local 1 // com.mongodb.connection.ClusterId clusterId
        start local 2 // com.mongodb.connection.ClusterSettings settings
        start local 3 // com.mongodb.internal.connection.ClusterableServerFactory serverFactory
        start local 4 // com.mongodb.internal.connection.DnsSrvRecordMonitorFactory dnsSrvRecordMonitorFactory
         0: .line 37
            aload 0 /* this */
            aload 1 /* clusterId */
            aload 2 /* settings */
            aload 3 /* serverFactory */
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.<init>:(Lcom/mongodb/connection/ClusterId;Lcom/mongodb/connection/ClusterSettings;Lcom/mongodb/internal/connection/ClusterableServerFactory;)V
         1: .line 38
            ldc "srvHost"
            aload 2 /* settings */
            invokevirtual com.mongodb.connection.ClusterSettings.getSrvHost:()Ljava/lang/String;
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 39
            aload 0 /* this */
            aload 4 /* dnsSrvRecordMonitorFactory */
            aload 2 /* settings */
            invokevirtual com.mongodb.connection.ClusterSettings.getSrvHost:()Ljava/lang/String;
            new com.mongodb.internal.connection.DnsMultiServerCluster$1
            dup
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.DnsMultiServerCluster$1.<init>:(Lcom/mongodb/internal/connection/DnsMultiServerCluster;)V
            invokeinterface com.mongodb.internal.connection.DnsSrvRecordMonitorFactory.create:(Ljava/lang/String;Lcom/mongodb/internal/connection/DnsSrvRecordInitializer;)Lcom/mongodb/internal/connection/DnsSrvRecordMonitor;
            putfield com.mongodb.internal.connection.DnsMultiServerCluster.dnsSrvRecordMonitor:Lcom/mongodb/internal/connection/DnsSrvRecordMonitor;
         3: .line 66
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DnsMultiServerCluster.dnsSrvRecordMonitor:Lcom/mongodb/internal/connection/DnsSrvRecordMonitor;
            invokeinterface com.mongodb.internal.connection.DnsSrvRecordMonitor.start:()V
         4: .line 67
            return
        end local 4 // com.mongodb.internal.connection.DnsSrvRecordMonitorFactory dnsSrvRecordMonitorFactory
        end local 3 // com.mongodb.internal.connection.ClusterableServerFactory serverFactory
        end local 2 // com.mongodb.connection.ClusterSettings settings
        end local 1 // com.mongodb.connection.ClusterId clusterId
        end local 0 // com.mongodb.internal.connection.DnsMultiServerCluster this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    5     0                        this  Lcom/mongodb/internal/connection/DnsMultiServerCluster;
            0    5     1                   clusterId  Lcom/mongodb/connection/ClusterId;
            0    5     2                    settings  Lcom/mongodb/connection/ClusterSettings;
            0    5     3               serverFactory  Lcom/mongodb/internal/connection/ClusterableServerFactory;
            0    5     4  dnsSrvRecordMonitorFactory  Lcom/mongodb/internal/connection/DnsSrvRecordMonitorFactory;
    MethodParameters:
                            Name  Flags
      clusterId                   final
      settings                    final
      serverFactory               final
      dnsSrvRecordMonitorFactory  final

  protected com.mongodb.MongoException getSrvResolutionException();
    descriptor: ()Lcom/mongodb/MongoException;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.DnsMultiServerCluster this
         0: .line 71
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DnsMultiServerCluster.srvResolutionException:Lcom/mongodb/MongoException;
            areturn
        end local 0 // com.mongodb.internal.connection.DnsMultiServerCluster this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/DnsMultiServerCluster;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.DnsMultiServerCluster this
         0: .line 76
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DnsMultiServerCluster.dnsSrvRecordMonitor:Lcom/mongodb/internal/connection/DnsSrvRecordMonitor;
            ifnull 2
         1: .line 77
            aload 0 /* this */
            getfield com.mongodb.internal.connection.DnsMultiServerCluster.dnsSrvRecordMonitor:Lcom/mongodb/internal/connection/DnsSrvRecordMonitor;
            invokeinterface com.mongodb.internal.connection.DnsSrvRecordMonitor.close:()V
         2: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.close:()V
         3: .line 80
            return
        end local 0 // com.mongodb.internal.connection.DnsMultiServerCluster this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/internal/connection/DnsMultiServerCluster;

  public void selectServerAsync(com.mongodb.selector.ServerSelector, com.mongodb.async.SingleResultCallback);
    descriptor: (Lcom/mongodb/selector/ServerSelector;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.selectServerAsync:(Lcom/mongodb/selector/ServerSelector;Lcom/mongodb/async/SingleResultCallback;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.isClosed:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.connection.Server selectServer(com.mongodb.selector.ServerSelector);
    descriptor: (Lcom/mongodb/selector/ServerSelector;)Lcom/mongodb/connection/Server;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.selectServer:(Lcom/mongodb/selector/ServerSelector;)Lcom/mongodb/connection/Server;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.connection.ClusterSettings getSettings();
    descriptor: ()Lcom/mongodb/connection/ClusterSettings;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.getSettings:()Lcom/mongodb/connection/ClusterSettings;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.bson.BsonTimestamp getClusterTime();
    descriptor: ()Lorg/bson/BsonTimestamp;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.getClusterTime:()Lorg/bson/BsonTimestamp;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.connection.ClusterDescription getCurrentDescription();
    descriptor: ()Lcom/mongodb/connection/ClusterDescription;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.getCurrentDescription:()Lcom/mongodb/connection/ClusterDescription;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.connection.ClusterDescription getDescription();
    descriptor: ()Lcom/mongodb/connection/ClusterDescription;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.getDescription:()Lcom/mongodb/connection/ClusterDescription;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.internal.connection.ClusterableServerFactory getServerFactory();
    descriptor: ()Lcom/mongodb/internal/connection/ClusterableServerFactory;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial com.mongodb.internal.connection.AbstractMultiServerCluster.getServerFactory:()Lcom/mongodb/internal/connection/ClusterableServerFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "DnsMultiServerCluster.java"
NestMembers:
  com.mongodb.internal.connection.DnsMultiServerCluster$1
InnerClasses:
  com.mongodb.internal.connection.DnsMultiServerCluster$1