final class com.mongodb.async.client.MongoIterableSubscription<TResult> extends com.mongodb.async.client.AbstractSubscription<TResult>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.mongodb.async.client.MongoIterableSubscription
super_class: com.mongodb.async.client.AbstractSubscription
{
private final com.mongodb.async.client.MongoIterable<TResult> mongoIterable;
descriptor: Lcom/mongodb/async/client/MongoIterable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/mongodb/async/client/MongoIterable<TTResult;>;
private boolean isReading;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean completed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private volatile com.mongodb.async.AsyncBatchCursor<TResult> batchCursor;
descriptor: Lcom/mongodb/async/AsyncBatchCursor;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Lcom/mongodb/async/AsyncBatchCursor<TTResult;>;
void <init>(com.mongodb.async.client.MongoIterable<TResult>, com.mongodb.async.client.Observer<? super TResult>);
descriptor: (Lcom/mongodb/async/client/MongoIterable;Lcom/mongodb/async/client/Observer;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokespecial com.mongodb.async.client.AbstractSubscription.<init>:(Lcom/mongodb/async/client/Observer;)V
1: aload 0
aload 1
putfield com.mongodb.async.client.MongoIterableSubscription.mongoIterable:Lcom/mongodb/async/client/MongoIterable;
2: aload 2
aload 0
invokeinterface com.mongodb.async.client.Observer.onSubscribe:(Lcom/mongodb/async/client/Subscription;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/async/client/MongoIterableSubscription<TTResult;>;
0 4 1 mongoIterable Lcom/mongodb/async/client/MongoIterable<TTResult;>;
0 4 2 observer Lcom/mongodb/async/client/Observer<-TTResult;>;
Signature: (Lcom/mongodb/async/client/MongoIterable<TTResult;>;Lcom/mongodb/async/client/Observer<-TTResult;>;)V
MethodParameters:
Name Flags
mongoIterable final
observer final
void requestInitialData();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.mongoIterable:Lcom/mongodb/async/client/MongoIterable;
aload 0
invokevirtual com.mongodb.async.client.MongoIterableSubscription.calculateBatchSize:()I
invokeinterface com.mongodb.async.client.MongoIterable.batchSize:(I)Lcom/mongodb/async/client/MongoIterable;
pop
1: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.mongoIterable:Lcom/mongodb/async/client/MongoIterable;
new com.mongodb.async.client.MongoIterableSubscription$1
dup
aload 0
invokespecial com.mongodb.async.client.MongoIterableSubscription$1.<init>:(Lcom/mongodb/async/client/MongoIterableSubscription;)V
invokeinterface com.mongodb.async.client.MongoIterable.batchCursor:(Lcom/mongodb/async/SingleResultCallback;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/async/client/MongoIterableSubscription<TTResult;>;
boolean checkCompleted();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.completed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/async/client/MongoIterableSubscription<TTResult;>;
void postTerminate();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
ifnull 4
1: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
invokeinterface com.mongodb.async.AsyncBatchCursor.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.lang.Exception
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/async/client/MongoIterableSubscription<TTResult;>;
Exception table:
from to target type
0 2 3 Class java.lang.Exception
void requestMoreData();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
dup
astore 2
monitorenter
2: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.isReading:Z
ifne 5
aload 0
invokevirtual com.mongodb.async.client.MongoIterableSubscription.isTerminated:()Z
ifne 5
aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
ifnull 5
3: aload 0
iconst_1
putfield com.mongodb.async.client.MongoIterableSubscription.isReading:Z
4: iconst_1
istore 1
5: StackMap locals: int com.mongodb.async.client.MongoIterableSubscription
StackMap stack:
aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
iload 1
ifeq 12
10: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
aload 0
invokevirtual com.mongodb.async.client.MongoIterableSubscription.calculateBatchSize:()I
invokeinterface com.mongodb.async.AsyncBatchCursor.setBatchSize:(I)V
11: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
new com.mongodb.async.client.MongoIterableSubscription$2
dup
aload 0
invokespecial com.mongodb.async.client.MongoIterableSubscription$2.<init>:(Lcom/mongodb/async/client/MongoIterableSubscription;)V
invokeinterface com.mongodb.async.AsyncBatchCursor.next:(Lcom/mongodb/async/SingleResultCallback;)V
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/mongodb/async/client/MongoIterableSubscription<TTResult;>;
1 13 1 mustRead Z
Exception table:
from to target type
2 6 7 any
7 8 7 any
private int calculateBatchSize();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.MongoIterableSubscription.mongoIterable:Lcom/mongodb/async/client/MongoIterable;
invokeinterface com.mongodb.async.client.MongoIterable.getBatchSize:()Ljava/lang/Integer;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokevirtual java.lang.Integer.intValue:()I
ireturn
3: StackMap locals: java.lang.Integer
StackMap stack:
aload 0
invokevirtual com.mongodb.async.client.MongoIterableSubscription.getRequested:()J
lstore 2
start local 2 4: lload 2
lconst_1
lcmp
ifgt 6
5: iconst_2
ireturn
6: StackMap locals: long
StackMap stack:
lload 2
ldc 2147483647
lcmp
ifge 8
7: lload 2
l2i
ireturn
8: StackMap locals:
StackMap stack:
ldc 2147483647
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/mongodb/async/client/MongoIterableSubscription<TTResult;>;
1 9 1 batchSize Ljava/lang/Integer;
4 9 2 requested J
}
Signature: <TResult:Ljava/lang/Object;>Lcom/mongodb/async/client/AbstractSubscription<TTResult;>;
SourceFile: "MongoIterableSubscription.java"
NestMembers:
com.mongodb.async.client.MongoIterableSubscription$1 com.mongodb.async.client.MongoIterableSubscription$2
InnerClasses:
com.mongodb.async.client.MongoIterableSubscription$1
com.mongodb.async.client.MongoIterableSubscription$2