Ejemplo n.º 1
0
		private void Traverse(ProcessingStages operation, AggregateUpdateContext context)
		{
			if (Count == 0)
			{
				return;
			}
			int num = m_firstCellKey;
			int num2;
			do
			{
				num2 = num;
				IDisposable cleanupRef;
				RuntimeCell andPinCell = GetAndPinCell(num2, out cleanupRef);
				switch (operation)
				{
				case ProcessingStages.SortAndFilter:
					andPinCell.SortAndFilter(context);
					break;
				case ProcessingStages.UpdateAggregates:
					andPinCell.UpdateAggregates(context);
					break;
				default:
					Global.Tracer.Assert(condition: false, "Unknown operation in Traverse");
					break;
				}
				num = andPinCell.NextCell;
				cleanupRef?.Dispose();
			}
			while (num2 != m_lastCellKey);
		}
Ejemplo n.º 2
0
        private void Traverse(ProcessingStages operation, AggregateUpdateContext context)
        {
            if (this.Count != 0)
            {
                int num = this.m_firstCellKey;
                int num2;
                do
                {
                    num2 = num;
                    IDisposable disposable = default(IDisposable);
                    RuntimeCell andPinCell = this.GetAndPinCell(num2, out disposable);
                    switch (operation)
                    {
                    case ProcessingStages.SortAndFilter:
                        andPinCell.SortAndFilter(context);
                        break;

                    case ProcessingStages.UpdateAggregates:
                        andPinCell.UpdateAggregates(context);
                        break;

                    default:
                        Global.Tracer.Assert(false, "Unknown operation in Traverse");
                        break;
                    }
                    num = andPinCell.NextCell;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }while (num2 != this.m_lastCellKey);
            }
        }