public OrderByQueryPartitionRangePageAsyncEnumerator(
     IQueryDataSource queryDataSource,
     SqlQuerySpec sqlQuerySpec,
     FeedRangeInternal feedRange,
     PartitionKey?partitionKey,
     int pageSize,
     string filter,
     CancellationToken cancellationToken,
     QueryState state = default)
     : base(feedRange, cancellationToken, state)
 {
     this.StartOfPageState = state;
     this.innerEnumerator  = new InnerEnumerator(
         queryDataSource,
         sqlQuerySpec,
         feedRange,
         partitionKey,
         pageSize,
         filter,
         cancellationToken,
         state);
     this.bufferedEnumerator = new BufferedPartitionRangePageAsyncEnumerator <OrderByQueryPage, QueryState>(
         this.innerEnumerator,
         cancellationToken);
 }
コード例 #2
0
        private bool _MoveNext()
        {
            if (_joinEnumerator.MoveNext())
            {
                Current = _joinEnumerator.Current;

                return true;
            }

            Current = _firstValue;

            _firstValue = default;

            _moveNext = () =>
            {
                if (InnerEnumerator.MoveNext())
                {
                    Current = InnerEnumerator.Current;

                    return true;
                }

                return false;
            };

            return true;
        }
コード例 #3
0
        /// <inheritdoc/>
        public void Reset()
        {
            InnerEnumerator.Reset();

            Index          = 0;
            _endOfSequence = false;
        }
コード例 #4
0
        protected override void ResetOverride()
        {
            base.ResetOverride();

            if (_resetInnerEnumerator)
            {
                InnerEnumerator.Reset();
            }
        }
コード例 #5
0
        private void _MoveNext()
        {
            if (InnerEnumerator.MoveNext())

                _updateEnumerator();

            _completed = true;

            _subEnumerator = null;
        }
コード例 #6
0
            private bool _MoveNext()
            {
                if (InnerEnumerator.MoveNext())
                {
                    _updateEnumerator();

                    return true;
                }

                _subEnumerator = null;

                return false;
            }
コード例 #7
0
        private void InitDelegate() => _moveNext = () =>
        {
            if (InnerEnumerator.MoveNext())
            {
                _firstValue = InnerEnumerator.Current;

                _moveNext = () => _MoveNext();

                return _MoveNext();
            }

            else

                return false;
        };
コード例 #8
0
        /// <inheritdoc/>
        public bool MoveNext()
        {
            bool success = InnerEnumerator.MoveNext();

            if (success)
            {
                Index++;
            }
            else
            {
                _endOfSequence = true;
            }

            return(success);
        }
コード例 #9
0
        private bool _MoveNext()
        {
            while (InnerEnumerator.MoveNext())
            {
                if ((_currentEnumerator = InnerEnumerator.Current.GetEnumerator()).MoveNext())
                {
                    _moveNext = () => _currentEnumerator.MoveNext() || _MoveNext();

                    return(true);
                }
            }

            _moveNext = null;

            return(false);
        }
コード例 #10
0
            private bool _MoveNext()
            {
                if (_joinEnumerator.MoveNext())
                {
#if !WinCopies3
Current
#else
                    _current
#endif
                    = _joinEnumerator.Current;

                    return true;
                }

#if !WinCopies3
Current
#else
                _current
#endif
                = _firstValue;

                _firstValue = default;

                _moveNext = () =>
                {
                    if (InnerEnumerator.MoveNext())
                    {
#if !WinCopies3
Current
#else
                    _current
#endif
                    = InnerEnumerator.Current;

                        return true;
                    }

                    return false;
                };

                return true;
            }
コード例 #11
0
        public WMIItemInfoEnumerator(IEnumerable <ManagementBaseObject> enumerable, bool resetEnumerator, WMIItemType itemWMIItemType, bool catchExceptions) : base(enumerable)
        {
            _resetInnerEnumerator = resetEnumerator;

            ItemWMIItemType = itemWMIItemType;

            if (catchExceptions)
            {
                _func = () =>
                {
                    while (InnerEnumerator.MoveNext())
                    {
                        try
                        {
                            _MoveNext();

                            return(true);
                        }
                        catch (Exception) { }
                    }

                    return(false);
                }
            }
            ;

            else
            {
                _func = () =>
                {
                    if (InnerEnumerator.MoveNext())
                    {
                        _MoveNext();

                        return(true);
                    }

                    return(false);
                }
            };
        }
コード例 #12
0
        public EndpointCollection(Int32 width, IEnumerable <T> endpoints = null)
        {
            if (width <= 0)
            {
                throw new ArgumentException("The items count of collection must large than 0.");
            }

            _endpoints  = new T[width];
            _enumerator = new InnerEnumerator(ref _endpoints);

            for (var i = 0; i < width; i++)
            {
                if (endpoints != null && i < endpoints.Count() && endpoints.ElementAtOrDefault(i) != null)
                {
                    _endpoints[i] = endpoints.ElementAt(i);
                }
                else
                {
                    _endpoints[i] = new T();
                }
            }
        }
 public OrderByQueryPartitionRangePageAsyncEnumerator(
     IQueryDataSource queryDataSource,
     SqlQuerySpec sqlQuerySpec,
     FeedRangeState <QueryState> feedRangeState,
     PartitionKey?partitionKey,
     QueryPaginationOptions queryPaginationOptions,
     string filter,
     CancellationToken cancellationToken)
     : base(feedRangeState, cancellationToken)
 {
     this.StartOfPageState = feedRangeState.State;
     this.innerEnumerator  = new InnerEnumerator(
         queryDataSource,
         sqlQuerySpec,
         feedRangeState,
         partitionKey,
         queryPaginationOptions,
         filter,
         cancellationToken);
     this.bufferedEnumerator = new BufferedPartitionRangePageAsyncEnumerator <OrderByQueryPage, QueryState>(
         this.innerEnumerator,
         cancellationToken);
 }
コード例 #14
0
 /// <inheritdoc />
 public void Dispose()
 {
     InnerEnumerator.Dispose();
 }
コード例 #15
0
 public void Reset()
 {
     InnerEnumerator.Reset();
 }
コード例 #16
0
 public bool MoveNext()
 {
     return(InnerEnumerator.MoveNext());
 }