コード例 #1
0
ファイル: Store.cs プロジェクト: stuarthillary/sim-cluster
        IEnumerable <TOut> InternalScan <TOut>(LightningTransaction lt, FdbKeyRange range,
                                               Func <Slice, byte[], TOut> convert)
        {
            ushort x = 0;

            using (var c = lt.CreateCursor(_ld)) {
                if (!c.MoveToFirstAfter(range.Begin.GetBytes()))
                {
                    yield break;
                }

                var pair = c.Current;

                for (var i = 0; i < int.MaxValue; i++)
                {
                    var current = Slice.Create(pair.Key);
                    if (!range.Contains(current))
                    {
                        break;
                    }
                    x += 1;
                    yield return(convert(current, pair.Value));

                    if (!c.MoveNext())
                    {
                        break;
                    }
                    pair = c.Current;
                }
            }
        }