/System.Reactive/System.Reactive.Joins/System.Reactive.Joins.generated.cs
C# | 2489 lines | 2137 code | 346 blank | 6 comment | 1630 complexity | 9d59c4f61b4d02fe2d114bd65fd20173 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Reactive;
- using System.Reactive.Disposables;
- using System.Reactive.Linq;
- using System.Reactive.Subjects;
- namespace System.Reactive.Joins
- {
- public class Pattern<TSource1, TSource2> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2)
- {
- this.t1 = t1;
- this.t2 = t2;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
-
- public Pattern<TSource1, TSource2, TSource3> And<TSource3> (IObservable<TSource3> other)
- {
- return new Pattern<TSource1, TSource2, TSource3> (t1, t2, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [2];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2> pattern;
- Func<TSource1, TSource2, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2> pattern, Func<TSource1, TSource2, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4> And<TSource4> (IObservable<TSource4> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4> (t1, t2, t3, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [3];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3> pattern;
- Func<TSource1, TSource2, TSource3, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3> pattern, Func<TSource1, TSource2, TSource3, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5> And<TSource5> (IObservable<TSource5> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5> (t1, t2, t3, t4, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [4];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TSource4, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3, TSource4> pattern;
- Func<TSource1, TSource2, TSource3, TSource4, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3, TSource4> pattern, Func<TSource1, TSource2, TSource3, TSource4, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4, TSource5> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4, IObservable<TSource5> t5)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- this.t5 = t5;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
- IObservable<TSource5> t5;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> And<TSource6> (IObservable<TSource6> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> (t1, t2, t3, t4, t5, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [5];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
- var q5 = new Queue<TSource5> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t5.Subscribe (Observer.Create<TSource5> (t => {
- q5.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [4] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3, TSource4, TSource5> pattern;
- Func<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3, TSource4, TSource5> pattern, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4, IObservable<TSource5> t5, IObservable<TSource6> t6)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- this.t5 = t5;
- this.t6 = t6;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
- IObservable<TSource5> t5;
- IObservable<TSource6> t6;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> And<TSource7> (IObservable<TSource7> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> (t1, t2, t3, t4, t5, t6, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [6];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
- var q5 = new Queue<TSource5> ();
- var q6 = new Queue<TSource6> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t5.Subscribe (Observer.Create<TSource5> (t => {
- q5.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [4] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t6.Subscribe (Observer.Create<TSource6> (t => {
- q6.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [5] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> pattern;
- Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> pattern, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4, IObservable<TSource5> t5, IObservable<TSource6> t6, IObservable<TSource7> t7)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- this.t5 = t5;
- this.t6 = t6;
- this.t7 = t7;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
- IObservable<TSource5> t5;
- IObservable<TSource6> t6;
- IObservable<TSource7> t7;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> And<TSource8> (IObservable<TSource8> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> (t1, t2, t3, t4, t5, t6, t7, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [7];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
- var q5 = new Queue<TSource5> ();
- var q6 = new Queue<TSource6> ();
- var q7 = new Queue<TSource7> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t5.Subscribe (Observer.Create<TSource5> (t => {
- q5.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [4] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t6.Subscribe (Observer.Create<TSource6> (t => {
- q6.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [5] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t7.Subscribe (Observer.Create<TSource7> (t => {
- q7.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [6] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> pattern;
- Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> pattern, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4, IObservable<TSource5> t5, IObservable<TSource6> t6, IObservable<TSource7> t7, IObservable<TSource8> t8)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- this.t5 = t5;
- this.t6 = t6;
- this.t7 = t7;
- this.t8 = t8;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
- IObservable<TSource5> t5;
- IObservable<TSource6> t6;
- IObservable<TSource7> t7;
- IObservable<TSource8> t8;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> And<TSource9> (IObservable<TSource9> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> (t1, t2, t3, t4, t5, t6, t7, t8, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [8];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
- var q5 = new Queue<TSource5> ();
- var q6 = new Queue<TSource6> ();
- var q7 = new Queue<TSource7> ();
- var q8 = new Queue<TSource8> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t5.Subscribe (Observer.Create<TSource5> (t => {
- q5.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [4] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t6.Subscribe (Observer.Create<TSource6> (t => {
- q6.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [5] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t7.Subscribe (Observer.Create<TSource7> (t => {
- q7.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [6] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t8.Subscribe (Observer.Create<TSource8> (t => {
- q8.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [7] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> pattern;
- Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> pattern, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4, IObservable<TSource5> t5, IObservable<TSource6> t6, IObservable<TSource7> t7, IObservable<TSource8> t8, IObservable<TSource9> t9)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- this.t5 = t5;
- this.t6 = t6;
- this.t7 = t7;
- this.t8 = t8;
- this.t9 = t9;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
- IObservable<TSource5> t5;
- IObservable<TSource6> t6;
- IObservable<TSource7> t7;
- IObservable<TSource8> t8;
- IObservable<TSource9> t9;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> And<TSource10> (IObservable<TSource10> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> (t1, t2, t3, t4, t5, t6, t7, t8, t9, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [9];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
- var q5 = new Queue<TSource5> ();
- var q6 = new Queue<TSource6> ();
- var q7 = new Queue<TSource7> ();
- var q8 = new Queue<TSource8> ();
- var q9 = new Queue<TSource9> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t5.Subscribe (Observer.Create<TSource5> (t => {
- q5.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [4] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t6.Subscribe (Observer.Create<TSource6> (t => {
- q6.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [5] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t7.Subscribe (Observer.Create<TSource7> (t => {
- q7.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [6] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t8.Subscribe (Observer.Create<TSource8> (t => {
- q8.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [7] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t9.Subscribe (Observer.Create<TSource9> (t => {
- q9.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [8] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> pattern;
- Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> pattern, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4, IObservable<TSource5> t5, IObservable<TSource6> t6, IObservable<TSource7> t7, IObservable<TSource8> t8, IObservable<TSource9> t9, IObservable<TSource10> t10)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- this.t5 = t5;
- this.t6 = t6;
- this.t7 = t7;
- this.t8 = t8;
- this.t9 = t9;
- this.t10 = t10;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
- IObservable<TSource5> t5;
- IObservable<TSource6> t6;
- IObservable<TSource7> t7;
- IObservable<TSource8> t8;
- IObservable<TSource9> t9;
- IObservable<TSource10> t10;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11> And<TSource11> (IObservable<TSource11> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11> (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [10];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
- var q5 = new Queue<TSource5> ();
- var q6 = new Queue<TSource6> ();
- var q7 = new Queue<TSource7> ();
- var q8 = new Queue<TSource8> ();
- var q9 = new Queue<TSource9> ();
- var q10 = new Queue<TSource10> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t5.Subscribe (Observer.Create<TSource5> (t => {
- q5.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [4] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t6.Subscribe (Observer.Create<TSource6> (t => {
- q6.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [5] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t7.Subscribe (Observer.Create<TSource7> (t => {
- q7.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [6] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t8.Subscribe (Observer.Create<TSource8> (t => {
- q8.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [7] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t9.Subscribe (Observer.Create<TSource9> (t => {
- q9.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [8] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t10.Subscribe (Observer.Create<TSource10> (t => {
- q10.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [9] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- return sub;
- }
- }
-
- internal class Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> : Plan<TResult>
- {
- Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> pattern;
- Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> selector;
-
- public Plan (Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> pattern, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult> selector)
- {
- this.pattern = pattern;
- this.selector = selector;
- }
-
- internal override IObservable<TResult> AsObservable ()
- {
- return pattern.AsObservable<TResult> (selector);
- }
- }
-
- public class Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11> : Pattern
- {
- internal Pattern (IObservable<TSource1> t1, IObservable<TSource2> t2, IObservable<TSource3> t3, IObservable<TSource4> t4, IObservable<TSource5> t5, IObservable<TSource6> t6, IObservable<TSource7> t7, IObservable<TSource8> t8, IObservable<TSource9> t9, IObservable<TSource10> t10, IObservable<TSource11> t11)
- {
- this.t1 = t1;
- this.t2 = t2;
- this.t3 = t3;
- this.t4 = t4;
- this.t5 = t5;
- this.t6 = t6;
- this.t7 = t7;
- this.t8 = t8;
- this.t9 = t9;
- this.t10 = t10;
- this.t11 = t11;
- }
-
- IObservable<TSource1> t1;
- IObservable<TSource2> t2;
- IObservable<TSource3> t3;
- IObservable<TSource4> t4;
- IObservable<TSource5> t5;
- IObservable<TSource6> t6;
- IObservable<TSource7> t7;
- IObservable<TSource8> t8;
- IObservable<TSource9> t9;
- IObservable<TSource10> t10;
- IObservable<TSource11> t11;
-
- public Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12> And<TSource12> (IObservable<TSource12> other)
- {
- return new Pattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12> (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, other);
- }
-
- public Plan<TResult> Then<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult> selector)
- {
- return new Plan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult> (this, selector);
- }
-
- internal IObservable<TResult> AsObservable<TResult> (Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult> selector)
- {
- var sub = new Subject<TResult> ();
- bool [] done = new bool [11];
- var q1 = new Queue<TSource1> ();
- var q2 = new Queue<TSource2> ();
- var q3 = new Queue<TSource3> ();
- var q4 = new Queue<TSource4> ();
- var q5 = new Queue<TSource5> ();
- var q6 = new Queue<TSource6> ();
- var q7 = new Queue<TSource7> ();
- var q8 = new Queue<TSource8> ();
- var q9 = new Queue<TSource9> ();
- var q10 = new Queue<TSource10> ();
- var q11 = new Queue<TSource11> ();
-
- t1.Subscribe (Observer.Create<TSource1> (t => {
- q1.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0 && q11.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue (), q11.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [0] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t2.Subscribe (Observer.Create<TSource2> (t => {
- q2.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0 && q11.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue (), q11.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [1] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t3.Subscribe (Observer.Create<TSource3> (t => {
- q3.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0 && q11.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue (), q11.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [2] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t4.Subscribe (Observer.Create<TSource4> (t => {
- q4.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0 && q11.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue (), q11.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [3] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t5.Subscribe (Observer.Create<TSource5> (t => {
- q5.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0 && q11.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue (), q11.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [4] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- }));
-
- t6.Subscribe (Observer.Create<TSource6> (t => {
- q6.Enqueue (t);
- if (q1.Count > 0 && q2.Count > 0 && q3.Count > 0 && q4.Count > 0 && q5.Count > 0 && q6.Count > 0 && q7.Count > 0 && q8.Count > 0 && q9.Count > 0 && q10.Count > 0 && q11.Count > 0)
- sub.OnNext (selector (q1.Dequeue (), q2.Dequeue (), q3.Dequeue (), q4.Dequeue (), q5.Dequeue (), q6.Dequeue (), q7.Dequeue (), q8.Dequeue (), q9.Dequeue (), q10.Dequeue (), q11.Dequeue ()));
- }, (ex) => sub.OnError (ex), () => {
- done [5] = true;
- if (done.All (b => b))
- sub.OnCompleted ();
- …
Large files files are truncated, but you can click here to view the full file