public _(GroupJoin <TLeft, TRight, TLeftDuration, TRightDuration, TResult> parent, IObserver <TResult> observer, IDisposable cancel) : base(observer, cancel) { _refCount = new RefCountDisposable(_group); _leftMap = new SortedDictionary <int, IObserver <TRight> >(); _rightMap = new SortedDictionary <int, TRight>(); _leftDurationSelector = parent._leftDurationSelector; _rightDurationSelector = parent._rightDurationSelector; _resultSelector = parent._resultSelector; }
public void Run(GroupJoin <TLeft, TRight, TLeftDuration, TRightDuration, TResult> parent) { var leftObserver = new LeftObserver(this); _group.Add(leftObserver); var rightObserver = new RightObserver(this); _group.Add(rightObserver); leftObserver.SetResource(parent._left.SubscribeSafe(leftObserver)); rightObserver.SetResource(parent._right.SubscribeSafe(rightObserver)); SetUpstream(_refCount); }
public IDisposable Run(GroupJoin <TLeft, TRight, TLeftDuration, TRightDuration, TResult> parent) { var leftSubscription = new SingleAssignmentDisposable(); _group.Add(leftSubscription); _leftID = 0; var rightSubscription = new SingleAssignmentDisposable(); _group.Add(rightSubscription); _rightID = 0; leftSubscription.Disposable = parent._left.SubscribeSafe(new LeftObserver(this, leftSubscription)); rightSubscription.Disposable = parent._right.SubscribeSafe(new RightObserver(this, rightSubscription)); return(_refCount); }
public _(GroupJoin <TLeft, TRight, TLeftDuration, TRightDuration, TResult> parent, IObserver <TResult> observer, IDisposable cancel) : base(observer, cancel) { _parent = parent; }