Example #1
0
        public ChainNotifier(IObservable <TPrevious> predecessor, Action <TPrevious, Action <T> > chain)
        {
            if (predecessor == null)
            {
                throw new ArgumentNullException("predecessor");
            }

            var observer = Observer2.Create <TPrevious>(o => chain(o, NotifyNext), NotifyError, NotifyCompleted);

            _disposable = predecessor.Subscribe(observer);
        }
Example #2
0
        public static IObservable <TResult> ChainNext <TSource, TResult>(this IObservable <TSource> source, Func <IObserver <TResult>, Action <TSource> > getOnNext)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }
            if (getOnNext == null)
            {
                throw new ArgumentNullException("getOnNext");
            }

            var chain    = new ObservableChain <TResult>();
            var observer = Observer2.Create(getOnNext(chain), chain.OnError, chain.OnCompleted);

            chain.Subscription = source.Subscribe(observer);
            return(chain);
        }