//------------------------------------------------------------------------- /// <summary> /// Creates an instance wrapping the specified listener. </summary> /// <param name="listener"> the underlying listener wrapped by this object </param> /// <param name="tasksExpected"> the number of tasks to be executed </param> /// <param name="columns"> the columns for which values are being calculated </param> internal ListenerWrapper(CalculationListener listener, int tasksExpected, IList <CalculationTarget> targets, IList <Column> columns) { this.listener = ArgChecker.notNull(listener, "listener"); this.tasksExpected = ArgChecker.notNegative(tasksExpected, "tasksExpected"); listenerLock.@lock(); try { listener.calculationsStarted(targets, columns); if (tasksExpected == 0) { listener.calculationsComplete(); } } finally { listenerLock.unlock(); } }
public override void calculationsStarted(IList <CalculationTarget> targets, IList <Column> columns) { @delegate.calculationsStarted(targets, columns); }