コード例 #1
0
        public void OnComplete()
        {
            if (eager)
            {
                if (Interlocked.CompareExchange(ref once, 1, 0) == 0)
                {
                    try
                    {
                        disposeState();
                    }
                    catch (Exception ex)
                    {
                        actual.OnError(ex);
                        return;
                    }
                }
            }

            actual.OnComplete();

            if (!eager)
            {
                Clear();
            }
        }
コード例 #2
0
 public void OnError(Exception e)
 {
     if (delayError)
     {
         IDisposable t = scheduler.ScheduleDirect(() => actual.OnError(e), delay);
         DisposableHelper.Replace(ref task, t);
     }
     else
     {
         actual.OnError(e);
     }
 }
コード例 #3
0
        public void Subscribe(ICompletableSubscriber s)
        {
            CompletableInnerDisposable cid = new CompletableInnerDisposable(s, this);

            s.OnSubscribe(cid);

            if (Add(cid))
            {
                if (cid.IsDisposed())
                {
                    Remove(cid);
                }
            }
            else
            {
                Exception e = error;
                if (e != null)
                {
                    s.OnError(e);
                }
                else
                {
                    s.OnComplete();
                }
            }
        }
コード例 #4
0
        public void OnError(Exception e)
        {
            IDisposable t = scheduler.ScheduleDirect(() =>
            {
                actual.OnError(e);
            });

            DisposableHelper.Replace(ref task, t);
        }
コード例 #5
0
 public void OnError(Exception error)
 {
     if (mode == 2)
     {
         RxAdvancedFlowPlugins.OnError(error);
         return;
     }
     mode = 2;
     actual.OnError(error);
 }
コード例 #6
0
 public void OnError(Exception e)
 {
     if (Interlocked.Exchange(ref wip, 0) > 0)
     {
         all.Dispose();
         actual.OnError(e);
     }
     else
     {
         RxAdvancedFlowPlugins.OnError(e);
     }
 }
コード例 #7
0
 public void OnError(Exception e)
 {
     if (Interlocked.CompareExchange(ref once, 1, 0) == 0)
     {
         all.Dispose();
         actual.OnError(e);
     }
     else
     {
         RxAdvancedFlowPlugins.OnError(e);
     }
 }
コード例 #8
0
        public void OnError(Exception e)
        {
            try {
                onErrorCall(e);
            }
            catch (Exception ex)
            {
                actual.OnError(new AggregateException(ex, e));
                return;
            }
            actual.OnError(e);

            try
            {
                onAfterTerminate();
            }
            catch (Exception ex)
            {
                RxAdvancedFlowPlugins.OnError(ex);
            }
        }
コード例 #9
0
        public void OnError(Exception e)
        {
            bool b;

            try
            {
                b = predicate(e);
            }
            catch (Exception ex)
            {
                actual.OnError(new AggregateException(e, ex));
                return;
            }

            if (b)
            {
                actual.OnComplete();
            }
            else
            {
                actual.OnError(e);
            }
        }
コード例 #10
0
        public void OnError(Exception e)
        {
            if (once)
            {
                actual.OnError(e);
                return;
            }

            once = true;

            ICompletable next;

            try
            {
                next = nextProvider(e);
            }
            catch (Exception ex)
            {
                actual.OnError(new AggregateException(e, ex));
                return;
            }

            next.Subscribe(this);
        }
コード例 #11
0
        public void OnError(Exception e)
        {
            bool b;

            try
            {
                b = retryIf(e);
            }
            catch (Exception ex)
            {
                actual.OnError(new AggregateException(e, ex));
                return;
            }

            if (b)
            {
                Resubscribe();
            }
        }
コード例 #12
0
 public void OnError(Exception e)
 {
     actual.OnError(e);
 }
コード例 #13
0
 public void OnError(Exception error)
 {
     cs.OnError(error);
 }
コード例 #14
0
 public void OnError(Exception e)
 {
     cs.OnError(e);
 }
コード例 #15
0
 public static void Error(ICompletableSubscriber cs, Exception e)
 {
     cs.OnSubscribe(Instance);
     cs.OnError(e);
 }