class com.lmax.disruptor.dsl.ConsumerRepository<T> implements java.lang.Iterable<com.lmax.disruptor.dsl.ConsumerInfo>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.lmax.disruptor.dsl.ConsumerRepository
super_class: java.lang.Object
{
private final java.util.Map<com.lmax.disruptor.EventHandler<?>, com.lmax.disruptor.dsl.EventProcessorInfo<T>> eventProcessorInfoByEventHandler;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lcom/lmax/disruptor/EventHandler<*>;Lcom/lmax/disruptor/dsl/EventProcessorInfo<TT;>;>;
private final java.util.Map<com.lmax.disruptor.Sequence, com.lmax.disruptor.dsl.ConsumerInfo> eventProcessorInfoBySequence;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lcom/lmax/disruptor/Sequence;Lcom/lmax/disruptor/dsl/ConsumerInfo;>;
private final java.util.Collection<com.lmax.disruptor.dsl.ConsumerInfo> consumerInfos;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Lcom/lmax/disruptor/dsl/ConsumerInfo;>;
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
putfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoByEventHandler:Ljava/util/Map;
3: aload 0
4: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
putfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoBySequence:Ljava/util/Map;
5: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.lmax.disruptor.dsl.ConsumerRepository.consumerInfos:Ljava/util/Collection;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
public void add(com.lmax.disruptor.EventProcessor, com.lmax.disruptor.EventHandler<? super T>, com.lmax.disruptor.SequenceBarrier);
descriptor: (Lcom/lmax/disruptor/EventProcessor;Lcom/lmax/disruptor/EventHandler;Lcom/lmax/disruptor/SequenceBarrier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.lmax.disruptor.dsl.EventProcessorInfo
dup
aload 1
aload 2
aload 3
invokespecial com.lmax.disruptor.dsl.EventProcessorInfo.<init>:(Lcom/lmax/disruptor/EventProcessor;Lcom/lmax/disruptor/EventHandler;Lcom/lmax/disruptor/SequenceBarrier;)V
astore 4
start local 4 1: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoByEventHandler:Ljava/util/Map;
aload 2
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoBySequence:Ljava/util/Map;
aload 1
invokeinterface com.lmax.disruptor.EventProcessor.getSequence:()Lcom/lmax/disruptor/Sequence;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.consumerInfos:Ljava/util/Collection;
aload 4
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
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/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 5 1 eventprocessor Lcom/lmax/disruptor/EventProcessor;
0 5 2 handler Lcom/lmax/disruptor/EventHandler<-TT;>;
0 5 3 barrier Lcom/lmax/disruptor/SequenceBarrier;
1 5 4 consumerInfo Lcom/lmax/disruptor/dsl/EventProcessorInfo<TT;>;
Signature: (Lcom/lmax/disruptor/EventProcessor;Lcom/lmax/disruptor/EventHandler<-TT;>;Lcom/lmax/disruptor/SequenceBarrier;)V
MethodParameters:
Name Flags
eventprocessor final
handler final
barrier final
public void add(com.lmax.disruptor.EventProcessor);
descriptor: (Lcom/lmax/disruptor/EventProcessor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new com.lmax.disruptor.dsl.EventProcessorInfo
dup
aload 1
aconst_null
aconst_null
invokespecial com.lmax.disruptor.dsl.EventProcessorInfo.<init>:(Lcom/lmax/disruptor/EventProcessor;Lcom/lmax/disruptor/EventHandler;Lcom/lmax/disruptor/SequenceBarrier;)V
astore 2
start local 2 1: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoBySequence:Ljava/util/Map;
aload 1
invokeinterface com.lmax.disruptor.EventProcessor.getSequence:()Lcom/lmax/disruptor/Sequence;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.consumerInfos:Ljava/util/Collection;
aload 2
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 4 1 processor Lcom/lmax/disruptor/EventProcessor;
1 4 2 consumerInfo Lcom/lmax/disruptor/dsl/EventProcessorInfo<TT;>;
MethodParameters:
Name Flags
processor final
public void add(com.lmax.disruptor.WorkerPool<T>, com.lmax.disruptor.SequenceBarrier);
descriptor: (Lcom/lmax/disruptor/WorkerPool;Lcom/lmax/disruptor/SequenceBarrier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new com.lmax.disruptor.dsl.WorkerPoolInfo
dup
aload 1
aload 2
invokespecial com.lmax.disruptor.dsl.WorkerPoolInfo.<init>:(Lcom/lmax/disruptor/WorkerPool;Lcom/lmax/disruptor/SequenceBarrier;)V
astore 3
start local 3 1: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.consumerInfos:Ljava/util/Collection;
aload 3
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
2: aload 1
invokevirtual com.lmax.disruptor.WorkerPool.getWorkerSequences:()[Lcom/lmax/disruptor/Sequence;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 6
StackMap locals: com.lmax.disruptor.dsl.ConsumerRepository com.lmax.disruptor.WorkerPool com.lmax.disruptor.SequenceBarrier com.lmax.disruptor.dsl.WorkerPoolInfo top int int com.lmax.disruptor.Sequence[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoBySequence:Ljava/util/Map;
aload 4
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 6
if_icmplt 3
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 8 1 workerPool Lcom/lmax/disruptor/WorkerPool<TT;>;
0 8 2 sequenceBarrier Lcom/lmax/disruptor/SequenceBarrier;
1 8 3 workerPoolInfo Lcom/lmax/disruptor/dsl/WorkerPoolInfo<TT;>;
4 5 4 sequence Lcom/lmax/disruptor/Sequence;
Signature: (Lcom/lmax/disruptor/WorkerPool<TT;>;Lcom/lmax/disruptor/SequenceBarrier;)V
MethodParameters:
Name Flags
workerPool final
sequenceBarrier final
public com.lmax.disruptor.Sequence[] getLastSequenceInChain(boolean);
descriptor: (Z)[Lcom/lmax/disruptor/Sequence;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.consumerInfos:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: com.lmax.disruptor.dsl.ConsumerRepository int java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.lmax.disruptor.dsl.ConsumerInfo
astore 3
start local 3 3: iload 1
ifne 4
aload 3
invokeinterface com.lmax.disruptor.dsl.ConsumerInfo.isRunning:()Z
ifeq 7
StackMap locals: com.lmax.disruptor.dsl.ConsumerRepository int java.util.List com.lmax.disruptor.dsl.ConsumerInfo java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface com.lmax.disruptor.dsl.ConsumerInfo.isEndOfChain:()Z
ifeq 7
5: aload 3
invokeinterface com.lmax.disruptor.dsl.ConsumerInfo.getSequences:()[Lcom/lmax/disruptor/Sequence;
astore 5
start local 5 6: aload 2
aload 5
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
end local 5 end local 3 7: StackMap locals: com.lmax.disruptor.dsl.ConsumerRepository int java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
8: aload 2
aload 2
invokeinterface java.util.List.size:()I
anewarray com.lmax.disruptor.Sequence
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.lmax.disruptor.Sequence[]
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 9 1 includeStopped Z
1 9 2 lastSequence Ljava/util/List<Lcom/lmax/disruptor/Sequence;>;
3 7 3 consumerInfo Lcom/lmax/disruptor/dsl/ConsumerInfo;
6 7 5 sequences [Lcom/lmax/disruptor/Sequence;
MethodParameters:
Name Flags
includeStopped
public com.lmax.disruptor.EventProcessor getEventProcessorFor(com.lmax.disruptor.EventHandler<T>);
descriptor: (Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/EventProcessor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getEventProcessorInfo:(Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/EventProcessorInfo;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "The event handler "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not processing events."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.lmax.disruptor.dsl.EventProcessorInfo
StackMap stack:
aload 2
invokevirtual com.lmax.disruptor.dsl.EventProcessorInfo.getEventProcessor:()Lcom/lmax/disruptor/EventProcessor;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 4 1 handler Lcom/lmax/disruptor/EventHandler<TT;>;
1 4 2 eventprocessorInfo Lcom/lmax/disruptor/dsl/EventProcessorInfo<TT;>;
Signature: (Lcom/lmax/disruptor/EventHandler<TT;>;)Lcom/lmax/disruptor/EventProcessor;
MethodParameters:
Name Flags
handler final
public com.lmax.disruptor.Sequence getSequenceFor(com.lmax.disruptor.EventHandler<T>);
descriptor: (Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/Sequence;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getEventProcessorFor:(Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/EventProcessor;
invokeinterface com.lmax.disruptor.EventProcessor.getSequence:()Lcom/lmax/disruptor/Sequence;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 1 1 handler Lcom/lmax/disruptor/EventHandler<TT;>;
Signature: (Lcom/lmax/disruptor/EventHandler<TT;>;)Lcom/lmax/disruptor/Sequence;
MethodParameters:
Name Flags
handler final
public void unMarkEventProcessorsAsEndOfChain(com.lmax.disruptor.Sequence[]);
descriptor: ([Lcom/lmax/disruptor/Sequence;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: com.lmax.disruptor.dsl.ConsumerRepository com.lmax.disruptor.Sequence[] top int int com.lmax.disruptor.Sequence[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 0
aload 2
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getEventProcessorInfo:(Lcom/lmax/disruptor/Sequence;)Lcom/lmax/disruptor/dsl/ConsumerInfo;
invokeinterface com.lmax.disruptor.dsl.ConsumerInfo.markAsUsedInBarrier:()V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 6 1 barrierEventProcessors [Lcom/lmax/disruptor/Sequence;
2 3 2 barrierEventProcessor Lcom/lmax/disruptor/Sequence;
MethodParameters:
Name Flags
barrierEventProcessors final
public java.util.Iterator<com.lmax.disruptor.dsl.ConsumerInfo> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.consumerInfos:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
Signature: ()Ljava/util/Iterator<Lcom/lmax/disruptor/dsl/ConsumerInfo;>;
public com.lmax.disruptor.SequenceBarrier getBarrierFor(com.lmax.disruptor.EventHandler<T>);
descriptor: (Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/SequenceBarrier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.lmax.disruptor.dsl.ConsumerRepository.getEventProcessorInfo:(Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/EventProcessorInfo;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokeinterface com.lmax.disruptor.dsl.ConsumerInfo.getBarrier:()Lcom/lmax/disruptor/SequenceBarrier;
goto 3
StackMap locals: com.lmax.disruptor.dsl.ConsumerInfo
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: com.lmax.disruptor.SequenceBarrier
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 4 1 handler Lcom/lmax/disruptor/EventHandler<TT;>;
1 4 2 consumerInfo Lcom/lmax/disruptor/dsl/ConsumerInfo;
Signature: (Lcom/lmax/disruptor/EventHandler<TT;>;)Lcom/lmax/disruptor/SequenceBarrier;
MethodParameters:
Name Flags
handler final
private com.lmax.disruptor.dsl.EventProcessorInfo<T> getEventProcessorInfo(com.lmax.disruptor.EventHandler<T>);
descriptor: (Lcom/lmax/disruptor/EventHandler;)Lcom/lmax/disruptor/dsl/EventProcessorInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoByEventHandler:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.lmax.disruptor.dsl.EventProcessorInfo
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 1 1 handler Lcom/lmax/disruptor/EventHandler<TT;>;
Signature: (Lcom/lmax/disruptor/EventHandler<TT;>;)Lcom/lmax/disruptor/dsl/EventProcessorInfo<TT;>;
MethodParameters:
Name Flags
handler final
private com.lmax.disruptor.dsl.ConsumerInfo getEventProcessorInfo(com.lmax.disruptor.Sequence);
descriptor: (Lcom/lmax/disruptor/Sequence;)Lcom/lmax/disruptor/dsl/ConsumerInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.lmax.disruptor.dsl.ConsumerRepository.eventProcessorInfoBySequence:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.lmax.disruptor.dsl.ConsumerInfo
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/lmax/disruptor/dsl/ConsumerRepository<TT;>;
0 1 1 barrierEventProcessor Lcom/lmax/disruptor/Sequence;
MethodParameters:
Name Flags
barrierEventProcessor final
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/lang/Iterable<Lcom/lmax/disruptor/dsl/ConsumerInfo;>;
SourceFile: "ConsumerRepository.java"