BTDB.KVDBLayer.BTree.BTreeRoot.BuildBranchNode C# (CSharp) Method

BuildBranchNode() private method

private BuildBranchNode ( long count, Func generator ) : IBTreeNode
count long
generator Func
return IBTreeNode
        IBTreeNode BuildBranchNode(long count, Func<IBTreeNode> generator)
        {
            if (count == 1) return generator();
            var children = (count + BTreeBranch.MaxChildren - 1) / BTreeBranch.MaxChildren;
            var order = 0L;
            var done = 0L;
            return BuildBranchNode(children, () =>
            {
                order++;
                var reach = count * order / children;
                var todo = (int)(reach - done);
                done = reach;
                return new BTreeBranch(_transactionId, todo, generator);
            });
        }