//-------------------------------------------------------------------------
        /// <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();
            }
        }
Esempio n. 2
0
 public override void calculationsStarted(IList <CalculationTarget> targets, IList <Column> columns)
 {
     @delegate.calculationsStarted(targets, columns);
 }