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; }
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(); }
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; }
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; }
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)); }