Пример #1
0
		private Ordering(
			Expression<Func<TSourceItem, TOrderingValue>> orderingValueSelectorExpression, 
			int sourceCapacity) : base(sourceCapacity)
		{
			Utils.construct(
                sourceCapacity, 
                out _orderedItemInfos, 
                out _orderedPositions, 
                out _orderingValues);

            Utils.construct(
                orderingValueSelectorExpression, 
                sourceCapacity, 
                out _itemInfos, 
                out _sourcePositions, 
                out _orderingValueSelectorExpressionOriginal, 
                out _orderingValueSelectorExpression, 
                out _orderingValueSelectorContainsParametrizedLiveLinqCalls, 
                ref _orderingValueSelectorExpressionInfo, 
                ref _orderingValueSelectorExpressionСallCount, 
                ref _orderingValueSelectorFunc, 
                ref _nestedComputings);

            _deferredQueuesCount = 3;
            _thisAsSourceCollectionChangeProcessor = this;
            _thisAsSourceItemChangeProcessor = this;
        }
Пример #2
0
		protected override void initializeFromSource()
		{
			if (_sourceInitialized)
			{
                Utils.disposeExpressionItemInfos(_itemInfos, _orderingValueSelectorExpressionСallCount, this);
                Utils.RemoveDownstreamConsumedComputing(_itemInfos, this);

				int capacity = Utils.disposeSource(
                    _sourceScalar, 
                    _source,
                    out _itemInfos,
                    out _sourcePositions, 
                    _sourceAsList, 
                    handleSourceCollectionChanged);

                Utils.construct(capacity, out _orderedItemInfos, out _orderedPositions, out _orderingValues);

				_items.Clear();

                _sourceInitialized = false;
            }

            Utils.changeSource(ref _source, _sourceScalar, _downstreamConsumedComputings, _consumers, this, ref _sourceAsList, false);

			if (_source != null && _isActive)
			{
                Utils.initializeFromObservableCollectionWithChangeMarker(
                    _source, 
                    ref _sourceAsList, 
                    ref _rootSourceWrapper, 
                    ref _lastProcessedSourceChangeMarker);

				int count = _sourceAsList.Count;
                TSourceItem[] sourceCopy = new TSourceItem[count];
                _sourceAsList.CopyTo(sourceCopy, 0);

                _sourceAsList.CollectionChanged += handleSourceCollectionChanged;

				int sourceIndex;
				for (sourceIndex = 0; sourceIndex < count; sourceIndex++)
				{
					registerSourceItem(sourceCopy[sourceIndex], sourceIndex, true);
				}

                _sourceInitialized = true;
            }

			reset();
		}
Пример #3
0
        private Selecting(Expression <Func <TSourceItem, TResultItem> > selectorExpression, int initialCapacity) : base(initialCapacity)
        {
            Utils.construct(
                selectorExpression,
                initialCapacity,
                out _itemInfos,
                out _sourcePositions,
                out _selectorExpressionOriginal,
                out _selectorExpression,
                out _selectorContainsParametrizedObservableComputationsCalls,
                ref _selectorExpressionInfo,
                ref _selectorExpressionCallCount,
                ref _selectorFunc,
                ref _nestedComputings);

            _deferredQueuesCount = 3;
            _thisAsSourceCollectionChangeProcessor = this;
            _thisAsSourceItemChangeProcessor       = this;
        }
Пример #4
0
        private AnyComputing(Expression <Func <TSourceItem, bool> > predicateExpression, int capacity)
        {
            Utils.construct(
                predicateExpression,
                capacity,
                out _itemInfos,
                out _sourcePositions,
                out _predicateExpressionOriginal,
                out _predicateExpression,
                out _predicateContainsParametrizedObservableComputationCalls,
                ref _predicateExpressionInfo,
                ref _predicateExpressionСallCount,
                ref _predicateFunc,
                ref _nestedComputings);

            _deferredQueuesCount = 3;
            _thisAsSourceCollectionChangeProcessor = this;
            _thisAsSourceItemChangeProcessor       = this;
        }
Пример #5
0
        private Filtering(Expression <Func <TSourceItem, bool> > predicateExpression,
                          int sourceCapacity, int initialCapacity) : base(initialCapacity)
        {
            Utils.construct(
                predicateExpression,
                sourceCapacity,
                out _itemInfos,
                out _sourcePositions,
                out _predicateExpressionOriginal,
                out _predicateExpression,
                out _predicateContainsParametrizedObservableComputationsCalls,
                ref _predicateExpressionInfo,
                ref _predicateExpressionCallCount,
                ref _predicateFunc,
                ref _nestedComputings);

            _deferredQueuesCount = 3;

            _thisAsFiltering = this;
            _thisAsSourceItemChangeProcessor = this;
            _initialCapacity   = initialCapacity;
            _filteredPositions = new Positions <Position>(new List <Position>(_initialCapacity));
        }