// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. #if !NO_PERF using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Reactive.Disposables; namespace System.Reactive.Linq.ObservableImpl { #region [3,16]-ary /* The following code is generated by a T4 template. */ #region CombineLatest auto-generated code (4/14/2015 00:35:42) class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(3, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; public IDisposable Run() { var disposables = new IDisposable[4]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); disposables[3] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(4, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; public IDisposable Run() { var disposables = new IDisposable[5]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); disposables[4] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue()); } } } #if !NO_LARGEARITY class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(5, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; public IDisposable Run() { var disposables = new IDisposable[6]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); disposables[5] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(6, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; public IDisposable Run() { var disposables = new IDisposable[7]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); disposables[6] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(7, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; public IDisposable Run() { var disposables = new IDisposable[8]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); disposables[7] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(8, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; public IDisposable Run() { var disposables = new IDisposable[9]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); disposables[8] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(9, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; public IDisposable Run() { var disposables = new IDisposable[10]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); disposables[9] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly IObservable _source10; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, IObservable source10, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _source10 = source10; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(10, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; private ZipObserver _observer10; public IDisposable Run() { var disposables = new IDisposable[11]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; var d10 = new SingleAssignmentDisposable(); disposables[9] = d10; _observer10 = new ZipObserver(_gate, this, 9, d10); base.Queues[9] = _observer10.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); d10.Disposable = _parent._source10.SubscribeSafe(_observer10); disposables[10] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); _observer10.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue(), _observer10.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly IObservable _source10; private readonly IObservable _source11; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, IObservable source10, IObservable source11, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _source10 = source10; _source11 = source11; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(11, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; private ZipObserver _observer10; private ZipObserver _observer11; public IDisposable Run() { var disposables = new IDisposable[12]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; var d10 = new SingleAssignmentDisposable(); disposables[9] = d10; _observer10 = new ZipObserver(_gate, this, 9, d10); base.Queues[9] = _observer10.Values; var d11 = new SingleAssignmentDisposable(); disposables[10] = d11; _observer11 = new ZipObserver(_gate, this, 10, d11); base.Queues[10] = _observer11.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); d10.Disposable = _parent._source10.SubscribeSafe(_observer10); d11.Disposable = _parent._source11.SubscribeSafe(_observer11); disposables[11] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); _observer10.Values.Clear(); _observer11.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue(), _observer10.Values.Dequeue(), _observer11.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly IObservable _source10; private readonly IObservable _source11; private readonly IObservable _source12; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, IObservable source10, IObservable source11, IObservable source12, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _source10 = source10; _source11 = source11; _source12 = source12; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(12, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; private ZipObserver _observer10; private ZipObserver _observer11; private ZipObserver _observer12; public IDisposable Run() { var disposables = new IDisposable[13]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; var d10 = new SingleAssignmentDisposable(); disposables[9] = d10; _observer10 = new ZipObserver(_gate, this, 9, d10); base.Queues[9] = _observer10.Values; var d11 = new SingleAssignmentDisposable(); disposables[10] = d11; _observer11 = new ZipObserver(_gate, this, 10, d11); base.Queues[10] = _observer11.Values; var d12 = new SingleAssignmentDisposable(); disposables[11] = d12; _observer12 = new ZipObserver(_gate, this, 11, d12); base.Queues[11] = _observer12.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); d10.Disposable = _parent._source10.SubscribeSafe(_observer10); d11.Disposable = _parent._source11.SubscribeSafe(_observer11); d12.Disposable = _parent._source12.SubscribeSafe(_observer12); disposables[12] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); _observer10.Values.Clear(); _observer11.Values.Clear(); _observer12.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue(), _observer10.Values.Dequeue(), _observer11.Values.Dequeue(), _observer12.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly IObservable _source10; private readonly IObservable _source11; private readonly IObservable _source12; private readonly IObservable _source13; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, IObservable source10, IObservable source11, IObservable source12, IObservable source13, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _source10 = source10; _source11 = source11; _source12 = source12; _source13 = source13; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(13, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; private ZipObserver _observer10; private ZipObserver _observer11; private ZipObserver _observer12; private ZipObserver _observer13; public IDisposable Run() { var disposables = new IDisposable[14]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; var d10 = new SingleAssignmentDisposable(); disposables[9] = d10; _observer10 = new ZipObserver(_gate, this, 9, d10); base.Queues[9] = _observer10.Values; var d11 = new SingleAssignmentDisposable(); disposables[10] = d11; _observer11 = new ZipObserver(_gate, this, 10, d11); base.Queues[10] = _observer11.Values; var d12 = new SingleAssignmentDisposable(); disposables[11] = d12; _observer12 = new ZipObserver(_gate, this, 11, d12); base.Queues[11] = _observer12.Values; var d13 = new SingleAssignmentDisposable(); disposables[12] = d13; _observer13 = new ZipObserver(_gate, this, 12, d13); base.Queues[12] = _observer13.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); d10.Disposable = _parent._source10.SubscribeSafe(_observer10); d11.Disposable = _parent._source11.SubscribeSafe(_observer11); d12.Disposable = _parent._source12.SubscribeSafe(_observer12); d13.Disposable = _parent._source13.SubscribeSafe(_observer13); disposables[13] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); _observer10.Values.Clear(); _observer11.Values.Clear(); _observer12.Values.Clear(); _observer13.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue(), _observer10.Values.Dequeue(), _observer11.Values.Dequeue(), _observer12.Values.Dequeue(), _observer13.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly IObservable _source10; private readonly IObservable _source11; private readonly IObservable _source12; private readonly IObservable _source13; private readonly IObservable _source14; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, IObservable source10, IObservable source11, IObservable source12, IObservable source13, IObservable source14, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _source10 = source10; _source11 = source11; _source12 = source12; _source13 = source13; _source14 = source14; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(14, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; private ZipObserver _observer10; private ZipObserver _observer11; private ZipObserver _observer12; private ZipObserver _observer13; private ZipObserver _observer14; public IDisposable Run() { var disposables = new IDisposable[15]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; var d10 = new SingleAssignmentDisposable(); disposables[9] = d10; _observer10 = new ZipObserver(_gate, this, 9, d10); base.Queues[9] = _observer10.Values; var d11 = new SingleAssignmentDisposable(); disposables[10] = d11; _observer11 = new ZipObserver(_gate, this, 10, d11); base.Queues[10] = _observer11.Values; var d12 = new SingleAssignmentDisposable(); disposables[11] = d12; _observer12 = new ZipObserver(_gate, this, 11, d12); base.Queues[11] = _observer12.Values; var d13 = new SingleAssignmentDisposable(); disposables[12] = d13; _observer13 = new ZipObserver(_gate, this, 12, d13); base.Queues[12] = _observer13.Values; var d14 = new SingleAssignmentDisposable(); disposables[13] = d14; _observer14 = new ZipObserver(_gate, this, 13, d14); base.Queues[13] = _observer14.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); d10.Disposable = _parent._source10.SubscribeSafe(_observer10); d11.Disposable = _parent._source11.SubscribeSafe(_observer11); d12.Disposable = _parent._source12.SubscribeSafe(_observer12); d13.Disposable = _parent._source13.SubscribeSafe(_observer13); d14.Disposable = _parent._source14.SubscribeSafe(_observer14); disposables[14] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); _observer10.Values.Clear(); _observer11.Values.Clear(); _observer12.Values.Clear(); _observer13.Values.Clear(); _observer14.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue(), _observer10.Values.Dequeue(), _observer11.Values.Dequeue(), _observer12.Values.Dequeue(), _observer13.Values.Dequeue(), _observer14.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly IObservable _source10; private readonly IObservable _source11; private readonly IObservable _source12; private readonly IObservable _source13; private readonly IObservable _source14; private readonly IObservable _source15; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, IObservable source10, IObservable source11, IObservable source12, IObservable source13, IObservable source14, IObservable source15, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _source10 = source10; _source11 = source11; _source12 = source12; _source13 = source13; _source14 = source14; _source15 = source15; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(15, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; private ZipObserver _observer10; private ZipObserver _observer11; private ZipObserver _observer12; private ZipObserver _observer13; private ZipObserver _observer14; private ZipObserver _observer15; public IDisposable Run() { var disposables = new IDisposable[16]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; var d10 = new SingleAssignmentDisposable(); disposables[9] = d10; _observer10 = new ZipObserver(_gate, this, 9, d10); base.Queues[9] = _observer10.Values; var d11 = new SingleAssignmentDisposable(); disposables[10] = d11; _observer11 = new ZipObserver(_gate, this, 10, d11); base.Queues[10] = _observer11.Values; var d12 = new SingleAssignmentDisposable(); disposables[11] = d12; _observer12 = new ZipObserver(_gate, this, 11, d12); base.Queues[11] = _observer12.Values; var d13 = new SingleAssignmentDisposable(); disposables[12] = d13; _observer13 = new ZipObserver(_gate, this, 12, d13); base.Queues[12] = _observer13.Values; var d14 = new SingleAssignmentDisposable(); disposables[13] = d14; _observer14 = new ZipObserver(_gate, this, 13, d14); base.Queues[13] = _observer14.Values; var d15 = new SingleAssignmentDisposable(); disposables[14] = d15; _observer15 = new ZipObserver(_gate, this, 14, d15); base.Queues[14] = _observer15.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); d10.Disposable = _parent._source10.SubscribeSafe(_observer10); d11.Disposable = _parent._source11.SubscribeSafe(_observer11); d12.Disposable = _parent._source12.SubscribeSafe(_observer12); d13.Disposable = _parent._source13.SubscribeSafe(_observer13); d14.Disposable = _parent._source14.SubscribeSafe(_observer14); d15.Disposable = _parent._source15.SubscribeSafe(_observer15); disposables[15] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); _observer10.Values.Clear(); _observer11.Values.Clear(); _observer12.Values.Clear(); _observer13.Values.Clear(); _observer14.Values.Clear(); _observer15.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue(), _observer10.Values.Dequeue(), _observer11.Values.Dequeue(), _observer12.Values.Dequeue(), _observer13.Values.Dequeue(), _observer14.Values.Dequeue(), _observer15.Values.Dequeue()); } } } class Zip : Producer { private readonly IObservable _source1; private readonly IObservable _source2; private readonly IObservable _source3; private readonly IObservable _source4; private readonly IObservable _source5; private readonly IObservable _source6; private readonly IObservable _source7; private readonly IObservable _source8; private readonly IObservable _source9; private readonly IObservable _source10; private readonly IObservable _source11; private readonly IObservable _source12; private readonly IObservable _source13; private readonly IObservable _source14; private readonly IObservable _source15; private readonly IObservable _source16; private readonly Func _resultSelector; public Zip(IObservable source1, IObservable source2, IObservable source3, IObservable source4, IObservable source5, IObservable source6, IObservable source7, IObservable source8, IObservable source9, IObservable source10, IObservable source11, IObservable source12, IObservable source13, IObservable source14, IObservable source15, IObservable source16, Func resultSelector) { _source1 = source1; _source2 = source2; _source3 = source3; _source4 = source4; _source5 = source5; _source6 = source6; _source7 = source7; _source8 = source8; _source9 = source9; _source10 = source10; _source11 = source11; _source12 = source12; _source13 = source13; _source14 = source14; _source15 = source15; _source16 = source16; _resultSelector = resultSelector; } protected override IDisposable Run(IObserver observer, IDisposable cancel, Action setSink) { var sink = new _(this, observer, cancel); setSink(sink); return sink.Run(); } class _ : ZipSink { private readonly Zip _parent; public _(Zip parent, IObserver observer, IDisposable cancel) : base(16, observer, cancel) { _parent = parent; } private ZipObserver _observer1; private ZipObserver _observer2; private ZipObserver _observer3; private ZipObserver _observer4; private ZipObserver _observer5; private ZipObserver _observer6; private ZipObserver _observer7; private ZipObserver _observer8; private ZipObserver _observer9; private ZipObserver _observer10; private ZipObserver _observer11; private ZipObserver _observer12; private ZipObserver _observer13; private ZipObserver _observer14; private ZipObserver _observer15; private ZipObserver _observer16; public IDisposable Run() { var disposables = new IDisposable[17]; var d1 = new SingleAssignmentDisposable(); disposables[0] = d1; _observer1 = new ZipObserver(_gate, this, 0, d1); base.Queues[0] = _observer1.Values; var d2 = new SingleAssignmentDisposable(); disposables[1] = d2; _observer2 = new ZipObserver(_gate, this, 1, d2); base.Queues[1] = _observer2.Values; var d3 = new SingleAssignmentDisposable(); disposables[2] = d3; _observer3 = new ZipObserver(_gate, this, 2, d3); base.Queues[2] = _observer3.Values; var d4 = new SingleAssignmentDisposable(); disposables[3] = d4; _observer4 = new ZipObserver(_gate, this, 3, d4); base.Queues[3] = _observer4.Values; var d5 = new SingleAssignmentDisposable(); disposables[4] = d5; _observer5 = new ZipObserver(_gate, this, 4, d5); base.Queues[4] = _observer5.Values; var d6 = new SingleAssignmentDisposable(); disposables[5] = d6; _observer6 = new ZipObserver(_gate, this, 5, d6); base.Queues[5] = _observer6.Values; var d7 = new SingleAssignmentDisposable(); disposables[6] = d7; _observer7 = new ZipObserver(_gate, this, 6, d7); base.Queues[6] = _observer7.Values; var d8 = new SingleAssignmentDisposable(); disposables[7] = d8; _observer8 = new ZipObserver(_gate, this, 7, d8); base.Queues[7] = _observer8.Values; var d9 = new SingleAssignmentDisposable(); disposables[8] = d9; _observer9 = new ZipObserver(_gate, this, 8, d9); base.Queues[8] = _observer9.Values; var d10 = new SingleAssignmentDisposable(); disposables[9] = d10; _observer10 = new ZipObserver(_gate, this, 9, d10); base.Queues[9] = _observer10.Values; var d11 = new SingleAssignmentDisposable(); disposables[10] = d11; _observer11 = new ZipObserver(_gate, this, 10, d11); base.Queues[10] = _observer11.Values; var d12 = new SingleAssignmentDisposable(); disposables[11] = d12; _observer12 = new ZipObserver(_gate, this, 11, d12); base.Queues[11] = _observer12.Values; var d13 = new SingleAssignmentDisposable(); disposables[12] = d13; _observer13 = new ZipObserver(_gate, this, 12, d13); base.Queues[12] = _observer13.Values; var d14 = new SingleAssignmentDisposable(); disposables[13] = d14; _observer14 = new ZipObserver(_gate, this, 13, d14); base.Queues[13] = _observer14.Values; var d15 = new SingleAssignmentDisposable(); disposables[14] = d15; _observer15 = new ZipObserver(_gate, this, 14, d15); base.Queues[14] = _observer15.Values; var d16 = new SingleAssignmentDisposable(); disposables[15] = d16; _observer16 = new ZipObserver(_gate, this, 15, d16); base.Queues[15] = _observer16.Values; d1.Disposable = _parent._source1.SubscribeSafe(_observer1); d2.Disposable = _parent._source2.SubscribeSafe(_observer2); d3.Disposable = _parent._source3.SubscribeSafe(_observer3); d4.Disposable = _parent._source4.SubscribeSafe(_observer4); d5.Disposable = _parent._source5.SubscribeSafe(_observer5); d6.Disposable = _parent._source6.SubscribeSafe(_observer6); d7.Disposable = _parent._source7.SubscribeSafe(_observer7); d8.Disposable = _parent._source8.SubscribeSafe(_observer8); d9.Disposable = _parent._source9.SubscribeSafe(_observer9); d10.Disposable = _parent._source10.SubscribeSafe(_observer10); d11.Disposable = _parent._source11.SubscribeSafe(_observer11); d12.Disposable = _parent._source12.SubscribeSafe(_observer12); d13.Disposable = _parent._source13.SubscribeSafe(_observer13); d14.Disposable = _parent._source14.SubscribeSafe(_observer14); d15.Disposable = _parent._source15.SubscribeSafe(_observer15); d16.Disposable = _parent._source16.SubscribeSafe(_observer16); disposables[16] = Disposable.Create(() => { _observer1.Values.Clear(); _observer2.Values.Clear(); _observer3.Values.Clear(); _observer4.Values.Clear(); _observer5.Values.Clear(); _observer6.Values.Clear(); _observer7.Values.Clear(); _observer8.Values.Clear(); _observer9.Values.Clear(); _observer10.Values.Clear(); _observer11.Values.Clear(); _observer12.Values.Clear(); _observer13.Values.Clear(); _observer14.Values.Clear(); _observer15.Values.Clear(); _observer16.Values.Clear(); }); return StableCompositeDisposable.Create(disposables); } protected override TResult GetResult() { return _parent._resultSelector(_observer1.Values.Dequeue(), _observer2.Values.Dequeue(), _observer3.Values.Dequeue(), _observer4.Values.Dequeue(), _observer5.Values.Dequeue(), _observer6.Values.Dequeue(), _observer7.Values.Dequeue(), _observer8.Values.Dequeue(), _observer9.Values.Dequeue(), _observer10.Values.Dequeue(), _observer11.Values.Dequeue(), _observer12.Values.Dequeue(), _observer13.Values.Dequeue(), _observer14.Values.Dequeue(), _observer15.Values.Dequeue(), _observer16.Values.Dequeue()); } } } #endif #endregion #endregion } #endif