Brod.Consumers.ConsumerConnector.BuildStreamsForTopic C# (CSharp) Метод

BuildStreamsForTopic() приватный Метод

private BuildStreamsForTopic ( String topic, Int32 numberOfStreams ) : List
topic String
numberOfStreams System.Int32
Результат List
        private List<ConsumerMessageStream> BuildStreamsForTopic(String topic, Int32 numberOfStreams)
        {
            var list = new List<ConsumerMessageStream>();
            var partitionsNumber = GetNumberOfPartitionsForTopic(topic);

            var additional = ((partitionsNumber % numberOfStreams) == 0) ? 0 : 1;
            var step = partitionsNumber / numberOfStreams + additional;

            for (int i = 0; i < numberOfStreams; i++)
            {
                var startingFrom = i * step;
                var count = step;

                if (startingFrom + count > partitionsNumber)
                    count = partitionsNumber - startingFrom;

                var messageStream = new ConsumerMessageStream(_stateStorageDirectory, _brokerAddress, _configuration, _context);
                messageStream.Topic = topic;
                messageStream.Partitions = GetPartitions(i*step, count);
                list.Add(messageStream);
            }

            return list;
        }