public void Dispose() { if (parent != null) { parent.observerList.Remove(unsubscribeTarget); unsubscribeTarget = null; parent = null; } }
public IDisposable Subscribe(IFuncObserver <T, R> observer) { try { if (!isStopped) { observerList.Add(observer); return(new Subscription(this, observer)); } else { observer.OnCompleted(); } } catch (Exception e) { observer.OnError(e); } return(EmptyDisposable.Singleton); }
public Subscription(FuncSubject <T, R> parent, IFuncObserver <T, R> unsubscribeTarget) { this.parent = parent; this.unsubscribeTarget = unsubscribeTarget; }