/// <summary> /// Adds the enumerator to this exchange. If it has already been added /// then it will remain registered in the exchange only once /// </summary> /// <param name="symbol">A unique symbol used to identify this enumerator</param> /// <param name="enumerator">The enumerator to be added</param> /// <param name="shouldMoveNext">Function used to determine if move next should be called on this /// enumerator, defaults to always returning true</param> /// <param name="enumeratorFinished">Delegate called when the enumerator move next returns false</param> public void AddEnumerator(Symbol symbol, IEnumerator<BaseData> enumerator, Func<bool> shouldMoveNext = null, Action<EnumeratorHandler> enumeratorFinished = null) { var enumeratorHandler = new EnumeratorHandler(symbol, enumerator, shouldMoveNext); if (enumeratorFinished != null) { enumeratorHandler.EnumeratorFinished += (sender, args) => enumeratorFinished(args); } AddEnumerator(enumeratorHandler); }
/// <summary> /// Adds the enumerator to this exchange. If it has already been added /// then it will remain registered in the exchange only once /// </summary> /// <param name="handler">The handler to use when this symbol's data is encountered</param> public void AddEnumerator(EnumeratorHandler handler) { _enumerators[handler.Symbol] = handler; }
/// <summary> /// Adds the enumerator to this exchange. If it has already been added /// then it will remain registered in the exchange only once /// </summary> /// <param name="handler">The handler to use when this symbol's data is encountered</param> public void AddEnumerator(EnumeratorHandler handler) { var copy = _enumerators.ToList(); copy.Add(handler); _enumerators = copy; }