ConsumerGroup <T> IConsumerBuilder <T> .CreateConsumers(IBatchConsumer[] barrierConsumers, IBatchHandler <T>[] batchHandlers) { if (_producerBarrier != null) { throw new InvalidOperationException("Producer Barrier must be initialised after all consumer barriers."); } var createdConsumers = new IBatchConsumer[batchHandlers.Length]; for (int i = 0; i < batchHandlers.Length; i++) { var batchHandler = batchHandlers[i]; var barrier = new ConsumerBarrier <T>(this, barrierConsumers); var batchConsumer = new BatchConsumer <T>(barrier, batchHandler); _consumerRepository.Add(batchConsumer, batchHandler); createdConsumers[i] = batchConsumer; } _consumerRepository.UnmarkConsumersAsEndOfChain(barrierConsumers); return(new ConsumerGroup <T>(this, createdConsumers)); }
public SequenceTrackerCallback(BatchConsumer <T> batchConsumer) { _batchConsumer = batchConsumer; }