Exemplo n.º 1
0
 public AmbDecisionObserver(AmbOuterObserver parent, AmbState me, IDisposable otherSubscription, Amb self)
 {
     this.parent            = parent;
     this.me                = me;
     this.otherSubscription = otherSubscription;
     this.self              = self;
 }
Exemplo n.º 2
0
            public IDisposable Run()
            {
                leftSubscription  = new SingleAssignmentDisposable();
                rightSubscription = new SingleAssignmentDisposable();
                ICancelable cancelable = StableCompositeDisposable.Create(leftSubscription, rightSubscription);
                Amb         amb        = new Amb();

                amb.targetDisposable = cancelable;
                amb.targetObserver   = new AmbDecisionObserver(this, AmbState.Left, rightSubscription, amb);
                Amb amb2 = new Amb();

                amb2.targetDisposable        = cancelable;
                amb2.targetObserver          = new AmbDecisionObserver(this, AmbState.Right, leftSubscription, amb2);
                leftSubscription.Disposable  = parent.source.Subscribe(amb);
                rightSubscription.Disposable = parent.second.Subscribe(amb2);
                return(cancelable);
            }
Exemplo n.º 3
0
            public IDisposable Run()
            {
                leftSubscription  = new SingleAssignmentDisposable();
                rightSubscription = new SingleAssignmentDisposable();
                var d    = StableCompositeDisposable.Create(leftSubscription, rightSubscription);
                var left = new Amb();

                left.targetDisposable = d;
                left.targetObserver   = new AmbDecisionObserver(this, AmbState.Left, rightSubscription, left);
                var right = new Amb();

                right.targetDisposable       = d;
                right.targetObserver         = new AmbDecisionObserver(this, AmbState.Right, leftSubscription, right);
                leftSubscription.Disposable  = parent.source.Subscribe(left);
                rightSubscription.Disposable = parent.second.Subscribe(right);
                return(d);
            }