Exemple #1
0
        public IDisposable Subscribe(IObserver <T> observer)
        {
            if (observer == null)
            {
                throw new ArgumentNullException(nameof(observer));
            }

            var completeSignals = new Subject <object>();
            var redo            = default(IObservable <U>);

            try
            {
                redo = handler(completeSignals);
                if (redo == null)
                {
                    throw new NullReferenceException("The handler returned a null IObservable");
                }
            }
            catch (Exception ex)
            {
                observer.OnError(ex);
                return(Disposable.Empty);
            }

            var parent = new MainObserver(observer, source, new RedoSerializedObserver <object>(completeSignals));

            var d = redo.SubscribeSafe(parent.handlerObserver);

            Disposable.SetSingle(ref parent.handlerUpstream, d);

            parent.HandlerNext();

            return(parent);
        }
Exemple #2
0
        public void Subscribe(ICompletableObserver observer)
        {
            RequireNonNull(observer, nameof(observer));

            var completeSignals = new UnicastSubject <object>();
            var redo            = default(IObservable <U>);

            try
            {
                redo = RequireNonNullRef(handler(completeSignals), "The handler returned a null IObservable");
            }
            catch (Exception ex)
            {
                DisposableHelper.Error(observer, ex);
                return;
            }

            var parent = new MainObserver(observer, source, new SerializedObserver <object>(completeSignals));

            var d = redo.Subscribe(parent.handlerObserver);

            parent.handlerObserver.OnSubscribe(d);

            parent.HandlerNext();
        }
Exemple #3
0
        public IDisposable Subscribe(IObserver <T> observer)
        {
            if (observer == null)
            {
                throw new ArgumentNullException(nameof(observer));
            }

            var errorSignals = new UnicastSubject <Exception>();
            var redo         = default(IObservable <U>);

            try
            {
                redo = handler(errorSignals);
                if (redo == null)
                {
                    throw new NullReferenceException("The handler returned a null IObservable");
                }
            }
            catch (Exception ex)
            {
                observer.OnError(ex);
                return(DisposableHelper.EMPTY);
            }

            var parent = new MainObserver(observer, source, new SerializedObserver <Exception>(errorSignals));

            var d = redo.Subscribe(parent.handlerObserver);

            parent.handlerObserver.OnSubscribe(d);

            parent.HandlerNext();

            return(parent);
        }
        public IDisposable Subscribe(IObserver <T> observer)
        {
            RequireNonNull(observer, nameof(observer));

            var errorSignals = new UnicastSubject <Exception>();
            var redo         = default(IObservable <U>);

            try
            {
                redo = RequireNonNullRef(handler(errorSignals), "The handler returned a null IObservable");
            }
            catch (Exception ex)
            {
                observer.OnError(ex);
                return(DisposableHelper.EMPTY);
            }

            var parent = new MainObserver(observer, source, new SerializedObserver <Exception>(errorSignals));

            var d = redo.Subscribe(parent.handlerObserver);

            parent.handlerObserver.OnSubscribe(d);

            parent.HandlerNext();

            return(parent);
        }
        public void Subscribe(ISignalObserver <T> observer)
        {
            ValidationHelper.RequireNonNull(observer, nameof(observer));

            var errorSignals = new PublishSubject <Exception>();
            var redo         = default(IObservableSource <U>);

            try
            {
                redo = ValidationHelper.RequireNonNullRef(handler(errorSignals), "The handler returned a null IObservableSource");
            }
            catch (Exception ex)
            {
                DisposableHelper.Error(observer, ex);
                return;
            }

            var parent = new MainObserver(observer, source, new SerializedSignalObserver <Exception>(errorSignals));

            observer.OnSubscribe(parent);

            redo.Subscribe(parent.handlerObserver);

            parent.HandlerNext();
        }
Exemple #6
0
        public IDisposable Subscribe(IObserver <T> observer)
        {
            if (observer == null)
            {
                throw new ArgumentNullException(nameof(observer));
            }

            var errorSignals = new Subject <Exception>();

            IObservable <U> redo;

            try
            {
                redo = _handler(errorSignals);

                if (redo == null)
                {
                    throw new NullReferenceException("The handler returned a null IObservable");
                }
            }
            catch (Exception ex)
            {
                observer.OnError(ex);
                return(Disposable.Empty);
            }

            var parent = new MainObserver(observer, _source, new RedoSerializedObserver <Exception>(errorSignals));

            var d = redo.SubscribeSafe(parent.HandlerConsumer);

            parent.HandlerUpstream.Disposable = d;

            parent.HandlerNext();

            return(parent);
        }
Exemple #7
0
 public void OnNext(U value)
 {
     _main.HandlerNext();
 }