Bend.StepsStageSubset.scanBackward C# (CSharp) Method

scanBackward() public method

public scanBackward ( IScanner scanner ) : RecordData>>.IEnumerable
scanner IScanner
return RecordData>>.IEnumerable
        public IEnumerable<KeyValuePair<RecordKey, RecordData>> scanBackward(IScanner<RecordKey> scanner)
        {
            var new_scanner = new ScanRange<RecordKey>(
               new RecordKeyComparator().appendKeyPart(this.subset_name).appendKeyPart(scanner.genLowestKeyTest()),
               new RecordKeyComparator().appendKeyPart(this.subset_name).appendKeyPart(scanner.genHighestKeyTest()), null);

            foreach (var rec in next_stage.scanBackward(new_scanner)) {
                if (this.subset_name.CompareTo(rec.Key.key_parts[0]) != 0) {
                    // Console.WriteLine("SubsetStage.scanBackward: no more records");
                    yield break;
                }
                RecordKeyType_RecordKey orig_key = (RecordKeyType_RecordKey)rec.Key.key_parts[1];

                yield return new KeyValuePair<RecordKey, RecordData>(orig_key.GetRecordKey(), rec.Value);
            }
        }