internal override void WrapPartitionedStream <TKey>(PartitionedStream <TSource, TKey> inputStream, IPartitionedStreamRecipient <TSource> recipient, bool preferStriping, QuerySettings settings) { int partitionCount = inputStream.PartitionCount; PartitionedStream <TSource, TKey> partitionedStream = new PartitionedStream <TSource, TKey>(partitionCount, new ReverseComparer <TKey>(inputStream.KeyComparer), OrdinalIndexState.Shuffled); for (int i = 0; i < partitionCount; i++) { partitionedStream[i] = new ReverseQueryOperatorEnumerator <TSource, TKey>(inputStream[i], settings.CancellationState.MergedCancellationToken); } recipient.Receive <TKey>(partitionedStream); }
internal override void WrapPartitionedStream <TKey>( PartitionedStream <TSource, TKey> inputStream, IPartitionedStreamRecipient <TSource> recipient, bool preferStriping, QuerySettings settings) { Debug.Assert(Child.OrdinalIndexState != OrdinalIndexState.Indexable, "Don't take this code path if the child is indexable."); int partitionCount = inputStream.PartitionCount; PartitionedStream <TSource, TKey> outputStream = new PartitionedStream <TSource, TKey>( partitionCount, new ReverseComparer <TKey>(inputStream.KeyComparer), OrdinalIndexState.Shuffled); for (int i = 0; i < partitionCount; i++) { outputStream[i] = new ReverseQueryOperatorEnumerator <TKey>(inputStream[i], settings.CancellationState.MergedCancellationToken); } recipient.Receive(outputStream); }