CombineLatest.Generated.cs 70 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the Apache 2.0 License.
  3. // See the LICENSE file in the project root for more information.
  4. using System.Reactive.Disposables;
  5. namespace System.Reactive.Linq.ObservableImpl
  6. {
  7. #region [3,16]-ary
  8. /* The following code is generated by a T4 template. */
  9. #region CombineLatest auto-generated code (4/14/2017 12:18:58 PM)
  10. internal sealed class CombineLatest<T1, T2, T3, TResult> : Producer<TResult>
  11. {
  12. private readonly IObservable<T1> _source1;
  13. private readonly IObservable<T2> _source2;
  14. private readonly IObservable<T3> _source3;
  15. private readonly Func<T1, T2, T3, TResult> _resultSelector;
  16. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, Func<T1, T2, T3, TResult> resultSelector)
  17. {
  18. _source1 = source1;
  19. _source2 = source2;
  20. _source3 = source3;
  21. _resultSelector = resultSelector;
  22. }
  23. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  24. {
  25. var sink = new _(this, observer, cancel);
  26. setSink(sink);
  27. return sink.Run();
  28. }
  29. class _ : CombineLatestSink<TResult>
  30. {
  31. private readonly CombineLatest<T1, T2, T3, TResult> _parent;
  32. public _(CombineLatest<T1, T2, T3, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  33. : base(3, observer, cancel)
  34. {
  35. _parent = parent;
  36. }
  37. private CombineLatestObserver<T1> _observer1;
  38. private CombineLatestObserver<T2> _observer2;
  39. private CombineLatestObserver<T3> _observer3;
  40. public IDisposable Run()
  41. {
  42. var subscriptions = new SingleAssignmentDisposable[3];
  43. for (int i = 0; i < 3; i++)
  44. subscriptions[i] = new SingleAssignmentDisposable();
  45. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  46. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  47. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  48. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  49. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  50. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  51. return StableCompositeDisposable.Create(subscriptions);
  52. }
  53. protected override TResult GetResult()
  54. {
  55. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value);
  56. }
  57. }
  58. }
  59. internal sealed class CombineLatest<T1, T2, T3, T4, TResult> : Producer<TResult>
  60. {
  61. private readonly IObservable<T1> _source1;
  62. private readonly IObservable<T2> _source2;
  63. private readonly IObservable<T3> _source3;
  64. private readonly IObservable<T4> _source4;
  65. private readonly Func<T1, T2, T3, T4, TResult> _resultSelector;
  66. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, Func<T1, T2, T3, T4, TResult> resultSelector)
  67. {
  68. _source1 = source1;
  69. _source2 = source2;
  70. _source3 = source3;
  71. _source4 = source4;
  72. _resultSelector = resultSelector;
  73. }
  74. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  75. {
  76. var sink = new _(this, observer, cancel);
  77. setSink(sink);
  78. return sink.Run();
  79. }
  80. class _ : CombineLatestSink<TResult>
  81. {
  82. private readonly CombineLatest<T1, T2, T3, T4, TResult> _parent;
  83. public _(CombineLatest<T1, T2, T3, T4, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  84. : base(4, observer, cancel)
  85. {
  86. _parent = parent;
  87. }
  88. private CombineLatestObserver<T1> _observer1;
  89. private CombineLatestObserver<T2> _observer2;
  90. private CombineLatestObserver<T3> _observer3;
  91. private CombineLatestObserver<T4> _observer4;
  92. public IDisposable Run()
  93. {
  94. var subscriptions = new SingleAssignmentDisposable[4];
  95. for (int i = 0; i < 4; i++)
  96. subscriptions[i] = new SingleAssignmentDisposable();
  97. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  98. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  99. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  100. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  101. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  102. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  103. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  104. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  105. return StableCompositeDisposable.Create(subscriptions);
  106. }
  107. protected override TResult GetResult()
  108. {
  109. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value);
  110. }
  111. }
  112. }
  113. internal sealed class CombineLatest<T1, T2, T3, T4, T5, TResult> : Producer<TResult>
  114. {
  115. private readonly IObservable<T1> _source1;
  116. private readonly IObservable<T2> _source2;
  117. private readonly IObservable<T3> _source3;
  118. private readonly IObservable<T4> _source4;
  119. private readonly IObservable<T5> _source5;
  120. private readonly Func<T1, T2, T3, T4, T5, TResult> _resultSelector;
  121. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, Func<T1, T2, T3, T4, T5, TResult> resultSelector)
  122. {
  123. _source1 = source1;
  124. _source2 = source2;
  125. _source3 = source3;
  126. _source4 = source4;
  127. _source5 = source5;
  128. _resultSelector = resultSelector;
  129. }
  130. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  131. {
  132. var sink = new _(this, observer, cancel);
  133. setSink(sink);
  134. return sink.Run();
  135. }
  136. class _ : CombineLatestSink<TResult>
  137. {
  138. private readonly CombineLatest<T1, T2, T3, T4, T5, TResult> _parent;
  139. public _(CombineLatest<T1, T2, T3, T4, T5, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  140. : base(5, observer, cancel)
  141. {
  142. _parent = parent;
  143. }
  144. private CombineLatestObserver<T1> _observer1;
  145. private CombineLatestObserver<T2> _observer2;
  146. private CombineLatestObserver<T3> _observer3;
  147. private CombineLatestObserver<T4> _observer4;
  148. private CombineLatestObserver<T5> _observer5;
  149. public IDisposable Run()
  150. {
  151. var subscriptions = new SingleAssignmentDisposable[5];
  152. for (int i = 0; i < 5; i++)
  153. subscriptions[i] = new SingleAssignmentDisposable();
  154. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  155. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  156. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  157. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  158. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  159. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  160. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  161. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  162. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  163. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  164. return StableCompositeDisposable.Create(subscriptions);
  165. }
  166. protected override TResult GetResult()
  167. {
  168. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value);
  169. }
  170. }
  171. }
  172. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, TResult> : Producer<TResult>
  173. {
  174. private readonly IObservable<T1> _source1;
  175. private readonly IObservable<T2> _source2;
  176. private readonly IObservable<T3> _source3;
  177. private readonly IObservable<T4> _source4;
  178. private readonly IObservable<T5> _source5;
  179. private readonly IObservable<T6> _source6;
  180. private readonly Func<T1, T2, T3, T4, T5, T6, TResult> _resultSelector;
  181. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, Func<T1, T2, T3, T4, T5, T6, TResult> resultSelector)
  182. {
  183. _source1 = source1;
  184. _source2 = source2;
  185. _source3 = source3;
  186. _source4 = source4;
  187. _source5 = source5;
  188. _source6 = source6;
  189. _resultSelector = resultSelector;
  190. }
  191. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  192. {
  193. var sink = new _(this, observer, cancel);
  194. setSink(sink);
  195. return sink.Run();
  196. }
  197. class _ : CombineLatestSink<TResult>
  198. {
  199. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, TResult> _parent;
  200. public _(CombineLatest<T1, T2, T3, T4, T5, T6, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  201. : base(6, observer, cancel)
  202. {
  203. _parent = parent;
  204. }
  205. private CombineLatestObserver<T1> _observer1;
  206. private CombineLatestObserver<T2> _observer2;
  207. private CombineLatestObserver<T3> _observer3;
  208. private CombineLatestObserver<T4> _observer4;
  209. private CombineLatestObserver<T5> _observer5;
  210. private CombineLatestObserver<T6> _observer6;
  211. public IDisposable Run()
  212. {
  213. var subscriptions = new SingleAssignmentDisposable[6];
  214. for (int i = 0; i < 6; i++)
  215. subscriptions[i] = new SingleAssignmentDisposable();
  216. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  217. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  218. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  219. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  220. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  221. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  222. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  223. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  224. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  225. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  226. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  227. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  228. return StableCompositeDisposable.Create(subscriptions);
  229. }
  230. protected override TResult GetResult()
  231. {
  232. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value);
  233. }
  234. }
  235. }
  236. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, TResult> : Producer<TResult>
  237. {
  238. private readonly IObservable<T1> _source1;
  239. private readonly IObservable<T2> _source2;
  240. private readonly IObservable<T3> _source3;
  241. private readonly IObservable<T4> _source4;
  242. private readonly IObservable<T5> _source5;
  243. private readonly IObservable<T6> _source6;
  244. private readonly IObservable<T7> _source7;
  245. private readonly Func<T1, T2, T3, T4, T5, T6, T7, TResult> _resultSelector;
  246. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, Func<T1, T2, T3, T4, T5, T6, T7, TResult> resultSelector)
  247. {
  248. _source1 = source1;
  249. _source2 = source2;
  250. _source3 = source3;
  251. _source4 = source4;
  252. _source5 = source5;
  253. _source6 = source6;
  254. _source7 = source7;
  255. _resultSelector = resultSelector;
  256. }
  257. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  258. {
  259. var sink = new _(this, observer, cancel);
  260. setSink(sink);
  261. return sink.Run();
  262. }
  263. class _ : CombineLatestSink<TResult>
  264. {
  265. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, TResult> _parent;
  266. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  267. : base(7, observer, cancel)
  268. {
  269. _parent = parent;
  270. }
  271. private CombineLatestObserver<T1> _observer1;
  272. private CombineLatestObserver<T2> _observer2;
  273. private CombineLatestObserver<T3> _observer3;
  274. private CombineLatestObserver<T4> _observer4;
  275. private CombineLatestObserver<T5> _observer5;
  276. private CombineLatestObserver<T6> _observer6;
  277. private CombineLatestObserver<T7> _observer7;
  278. public IDisposable Run()
  279. {
  280. var subscriptions = new SingleAssignmentDisposable[7];
  281. for (int i = 0; i < 7; i++)
  282. subscriptions[i] = new SingleAssignmentDisposable();
  283. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  284. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  285. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  286. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  287. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  288. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  289. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  290. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  291. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  292. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  293. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  294. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  295. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  296. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  297. return StableCompositeDisposable.Create(subscriptions);
  298. }
  299. protected override TResult GetResult()
  300. {
  301. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value);
  302. }
  303. }
  304. }
  305. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, TResult> : Producer<TResult>
  306. {
  307. private readonly IObservable<T1> _source1;
  308. private readonly IObservable<T2> _source2;
  309. private readonly IObservable<T3> _source3;
  310. private readonly IObservable<T4> _source4;
  311. private readonly IObservable<T5> _source5;
  312. private readonly IObservable<T6> _source6;
  313. private readonly IObservable<T7> _source7;
  314. private readonly IObservable<T8> _source8;
  315. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult> _resultSelector;
  316. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult> resultSelector)
  317. {
  318. _source1 = source1;
  319. _source2 = source2;
  320. _source3 = source3;
  321. _source4 = source4;
  322. _source5 = source5;
  323. _source6 = source6;
  324. _source7 = source7;
  325. _source8 = source8;
  326. _resultSelector = resultSelector;
  327. }
  328. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  329. {
  330. var sink = new _(this, observer, cancel);
  331. setSink(sink);
  332. return sink.Run();
  333. }
  334. class _ : CombineLatestSink<TResult>
  335. {
  336. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, TResult> _parent;
  337. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  338. : base(8, observer, cancel)
  339. {
  340. _parent = parent;
  341. }
  342. private CombineLatestObserver<T1> _observer1;
  343. private CombineLatestObserver<T2> _observer2;
  344. private CombineLatestObserver<T3> _observer3;
  345. private CombineLatestObserver<T4> _observer4;
  346. private CombineLatestObserver<T5> _observer5;
  347. private CombineLatestObserver<T6> _observer6;
  348. private CombineLatestObserver<T7> _observer7;
  349. private CombineLatestObserver<T8> _observer8;
  350. public IDisposable Run()
  351. {
  352. var subscriptions = new SingleAssignmentDisposable[8];
  353. for (int i = 0; i < 8; i++)
  354. subscriptions[i] = new SingleAssignmentDisposable();
  355. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  356. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  357. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  358. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  359. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  360. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  361. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  362. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  363. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  364. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  365. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  366. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  367. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  368. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  369. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  370. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  371. return StableCompositeDisposable.Create(subscriptions);
  372. }
  373. protected override TResult GetResult()
  374. {
  375. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value);
  376. }
  377. }
  378. }
  379. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> : Producer<TResult>
  380. {
  381. private readonly IObservable<T1> _source1;
  382. private readonly IObservable<T2> _source2;
  383. private readonly IObservable<T3> _source3;
  384. private readonly IObservable<T4> _source4;
  385. private readonly IObservable<T5> _source5;
  386. private readonly IObservable<T6> _source6;
  387. private readonly IObservable<T7> _source7;
  388. private readonly IObservable<T8> _source8;
  389. private readonly IObservable<T9> _source9;
  390. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> _resultSelector;
  391. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> resultSelector)
  392. {
  393. _source1 = source1;
  394. _source2 = source2;
  395. _source3 = source3;
  396. _source4 = source4;
  397. _source5 = source5;
  398. _source6 = source6;
  399. _source7 = source7;
  400. _source8 = source8;
  401. _source9 = source9;
  402. _resultSelector = resultSelector;
  403. }
  404. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  405. {
  406. var sink = new _(this, observer, cancel);
  407. setSink(sink);
  408. return sink.Run();
  409. }
  410. class _ : CombineLatestSink<TResult>
  411. {
  412. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> _parent;
  413. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  414. : base(9, observer, cancel)
  415. {
  416. _parent = parent;
  417. }
  418. private CombineLatestObserver<T1> _observer1;
  419. private CombineLatestObserver<T2> _observer2;
  420. private CombineLatestObserver<T3> _observer3;
  421. private CombineLatestObserver<T4> _observer4;
  422. private CombineLatestObserver<T5> _observer5;
  423. private CombineLatestObserver<T6> _observer6;
  424. private CombineLatestObserver<T7> _observer7;
  425. private CombineLatestObserver<T8> _observer8;
  426. private CombineLatestObserver<T9> _observer9;
  427. public IDisposable Run()
  428. {
  429. var subscriptions = new SingleAssignmentDisposable[9];
  430. for (int i = 0; i < 9; i++)
  431. subscriptions[i] = new SingleAssignmentDisposable();
  432. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  433. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  434. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  435. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  436. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  437. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  438. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  439. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  440. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  441. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  442. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  443. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  444. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  445. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  446. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  447. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  448. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  449. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  450. return StableCompositeDisposable.Create(subscriptions);
  451. }
  452. protected override TResult GetResult()
  453. {
  454. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value);
  455. }
  456. }
  457. }
  458. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> : Producer<TResult>
  459. {
  460. private readonly IObservable<T1> _source1;
  461. private readonly IObservable<T2> _source2;
  462. private readonly IObservable<T3> _source3;
  463. private readonly IObservable<T4> _source4;
  464. private readonly IObservable<T5> _source5;
  465. private readonly IObservable<T6> _source6;
  466. private readonly IObservable<T7> _source7;
  467. private readonly IObservable<T8> _source8;
  468. private readonly IObservable<T9> _source9;
  469. private readonly IObservable<T10> _source10;
  470. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> _resultSelector;
  471. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, IObservable<T10> source10, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> resultSelector)
  472. {
  473. _source1 = source1;
  474. _source2 = source2;
  475. _source3 = source3;
  476. _source4 = source4;
  477. _source5 = source5;
  478. _source6 = source6;
  479. _source7 = source7;
  480. _source8 = source8;
  481. _source9 = source9;
  482. _source10 = source10;
  483. _resultSelector = resultSelector;
  484. }
  485. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  486. {
  487. var sink = new _(this, observer, cancel);
  488. setSink(sink);
  489. return sink.Run();
  490. }
  491. class _ : CombineLatestSink<TResult>
  492. {
  493. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> _parent;
  494. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  495. : base(10, observer, cancel)
  496. {
  497. _parent = parent;
  498. }
  499. private CombineLatestObserver<T1> _observer1;
  500. private CombineLatestObserver<T2> _observer2;
  501. private CombineLatestObserver<T3> _observer3;
  502. private CombineLatestObserver<T4> _observer4;
  503. private CombineLatestObserver<T5> _observer5;
  504. private CombineLatestObserver<T6> _observer6;
  505. private CombineLatestObserver<T7> _observer7;
  506. private CombineLatestObserver<T8> _observer8;
  507. private CombineLatestObserver<T9> _observer9;
  508. private CombineLatestObserver<T10> _observer10;
  509. public IDisposable Run()
  510. {
  511. var subscriptions = new SingleAssignmentDisposable[10];
  512. for (int i = 0; i < 10; i++)
  513. subscriptions[i] = new SingleAssignmentDisposable();
  514. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  515. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  516. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  517. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  518. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  519. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  520. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  521. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  522. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  523. _observer10 = new CombineLatestObserver<T10>(_gate, this, 9, subscriptions[9]);
  524. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  525. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  526. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  527. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  528. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  529. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  530. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  531. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  532. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  533. subscriptions[9].Disposable = _parent._source10.SubscribeSafe(_observer10);
  534. return StableCompositeDisposable.Create(subscriptions);
  535. }
  536. protected override TResult GetResult()
  537. {
  538. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value, _observer10.Value);
  539. }
  540. }
  541. }
  542. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult> : Producer<TResult>
  543. {
  544. private readonly IObservable<T1> _source1;
  545. private readonly IObservable<T2> _source2;
  546. private readonly IObservable<T3> _source3;
  547. private readonly IObservable<T4> _source4;
  548. private readonly IObservable<T5> _source5;
  549. private readonly IObservable<T6> _source6;
  550. private readonly IObservable<T7> _source7;
  551. private readonly IObservable<T8> _source8;
  552. private readonly IObservable<T9> _source9;
  553. private readonly IObservable<T10> _source10;
  554. private readonly IObservable<T11> _source11;
  555. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult> _resultSelector;
  556. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, IObservable<T10> source10, IObservable<T11> source11, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult> resultSelector)
  557. {
  558. _source1 = source1;
  559. _source2 = source2;
  560. _source3 = source3;
  561. _source4 = source4;
  562. _source5 = source5;
  563. _source6 = source6;
  564. _source7 = source7;
  565. _source8 = source8;
  566. _source9 = source9;
  567. _source10 = source10;
  568. _source11 = source11;
  569. _resultSelector = resultSelector;
  570. }
  571. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  572. {
  573. var sink = new _(this, observer, cancel);
  574. setSink(sink);
  575. return sink.Run();
  576. }
  577. class _ : CombineLatestSink<TResult>
  578. {
  579. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult> _parent;
  580. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  581. : base(11, observer, cancel)
  582. {
  583. _parent = parent;
  584. }
  585. private CombineLatestObserver<T1> _observer1;
  586. private CombineLatestObserver<T2> _observer2;
  587. private CombineLatestObserver<T3> _observer3;
  588. private CombineLatestObserver<T4> _observer4;
  589. private CombineLatestObserver<T5> _observer5;
  590. private CombineLatestObserver<T6> _observer6;
  591. private CombineLatestObserver<T7> _observer7;
  592. private CombineLatestObserver<T8> _observer8;
  593. private CombineLatestObserver<T9> _observer9;
  594. private CombineLatestObserver<T10> _observer10;
  595. private CombineLatestObserver<T11> _observer11;
  596. public IDisposable Run()
  597. {
  598. var subscriptions = new SingleAssignmentDisposable[11];
  599. for (int i = 0; i < 11; i++)
  600. subscriptions[i] = new SingleAssignmentDisposable();
  601. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  602. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  603. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  604. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  605. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  606. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  607. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  608. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  609. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  610. _observer10 = new CombineLatestObserver<T10>(_gate, this, 9, subscriptions[9]);
  611. _observer11 = new CombineLatestObserver<T11>(_gate, this, 10, subscriptions[10]);
  612. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  613. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  614. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  615. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  616. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  617. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  618. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  619. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  620. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  621. subscriptions[9].Disposable = _parent._source10.SubscribeSafe(_observer10);
  622. subscriptions[10].Disposable = _parent._source11.SubscribeSafe(_observer11);
  623. return StableCompositeDisposable.Create(subscriptions);
  624. }
  625. protected override TResult GetResult()
  626. {
  627. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value, _observer10.Value, _observer11.Value);
  628. }
  629. }
  630. }
  631. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult> : Producer<TResult>
  632. {
  633. private readonly IObservable<T1> _source1;
  634. private readonly IObservable<T2> _source2;
  635. private readonly IObservable<T3> _source3;
  636. private readonly IObservable<T4> _source4;
  637. private readonly IObservable<T5> _source5;
  638. private readonly IObservable<T6> _source6;
  639. private readonly IObservable<T7> _source7;
  640. private readonly IObservable<T8> _source8;
  641. private readonly IObservable<T9> _source9;
  642. private readonly IObservable<T10> _source10;
  643. private readonly IObservable<T11> _source11;
  644. private readonly IObservable<T12> _source12;
  645. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult> _resultSelector;
  646. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, IObservable<T10> source10, IObservable<T11> source11, IObservable<T12> source12, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult> resultSelector)
  647. {
  648. _source1 = source1;
  649. _source2 = source2;
  650. _source3 = source3;
  651. _source4 = source4;
  652. _source5 = source5;
  653. _source6 = source6;
  654. _source7 = source7;
  655. _source8 = source8;
  656. _source9 = source9;
  657. _source10 = source10;
  658. _source11 = source11;
  659. _source12 = source12;
  660. _resultSelector = resultSelector;
  661. }
  662. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  663. {
  664. var sink = new _(this, observer, cancel);
  665. setSink(sink);
  666. return sink.Run();
  667. }
  668. class _ : CombineLatestSink<TResult>
  669. {
  670. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult> _parent;
  671. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  672. : base(12, observer, cancel)
  673. {
  674. _parent = parent;
  675. }
  676. private CombineLatestObserver<T1> _observer1;
  677. private CombineLatestObserver<T2> _observer2;
  678. private CombineLatestObserver<T3> _observer3;
  679. private CombineLatestObserver<T4> _observer4;
  680. private CombineLatestObserver<T5> _observer5;
  681. private CombineLatestObserver<T6> _observer6;
  682. private CombineLatestObserver<T7> _observer7;
  683. private CombineLatestObserver<T8> _observer8;
  684. private CombineLatestObserver<T9> _observer9;
  685. private CombineLatestObserver<T10> _observer10;
  686. private CombineLatestObserver<T11> _observer11;
  687. private CombineLatestObserver<T12> _observer12;
  688. public IDisposable Run()
  689. {
  690. var subscriptions = new SingleAssignmentDisposable[12];
  691. for (int i = 0; i < 12; i++)
  692. subscriptions[i] = new SingleAssignmentDisposable();
  693. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  694. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  695. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  696. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  697. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  698. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  699. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  700. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  701. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  702. _observer10 = new CombineLatestObserver<T10>(_gate, this, 9, subscriptions[9]);
  703. _observer11 = new CombineLatestObserver<T11>(_gate, this, 10, subscriptions[10]);
  704. _observer12 = new CombineLatestObserver<T12>(_gate, this, 11, subscriptions[11]);
  705. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  706. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  707. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  708. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  709. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  710. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  711. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  712. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  713. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  714. subscriptions[9].Disposable = _parent._source10.SubscribeSafe(_observer10);
  715. subscriptions[10].Disposable = _parent._source11.SubscribeSafe(_observer11);
  716. subscriptions[11].Disposable = _parent._source12.SubscribeSafe(_observer12);
  717. return StableCompositeDisposable.Create(subscriptions);
  718. }
  719. protected override TResult GetResult()
  720. {
  721. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value, _observer10.Value, _observer11.Value, _observer12.Value);
  722. }
  723. }
  724. }
  725. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult> : Producer<TResult>
  726. {
  727. private readonly IObservable<T1> _source1;
  728. private readonly IObservable<T2> _source2;
  729. private readonly IObservable<T3> _source3;
  730. private readonly IObservable<T4> _source4;
  731. private readonly IObservable<T5> _source5;
  732. private readonly IObservable<T6> _source6;
  733. private readonly IObservable<T7> _source7;
  734. private readonly IObservable<T8> _source8;
  735. private readonly IObservable<T9> _source9;
  736. private readonly IObservable<T10> _source10;
  737. private readonly IObservable<T11> _source11;
  738. private readonly IObservable<T12> _source12;
  739. private readonly IObservable<T13> _source13;
  740. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult> _resultSelector;
  741. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, IObservable<T10> source10, IObservable<T11> source11, IObservable<T12> source12, IObservable<T13> source13, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult> resultSelector)
  742. {
  743. _source1 = source1;
  744. _source2 = source2;
  745. _source3 = source3;
  746. _source4 = source4;
  747. _source5 = source5;
  748. _source6 = source6;
  749. _source7 = source7;
  750. _source8 = source8;
  751. _source9 = source9;
  752. _source10 = source10;
  753. _source11 = source11;
  754. _source12 = source12;
  755. _source13 = source13;
  756. _resultSelector = resultSelector;
  757. }
  758. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  759. {
  760. var sink = new _(this, observer, cancel);
  761. setSink(sink);
  762. return sink.Run();
  763. }
  764. class _ : CombineLatestSink<TResult>
  765. {
  766. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult> _parent;
  767. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  768. : base(13, observer, cancel)
  769. {
  770. _parent = parent;
  771. }
  772. private CombineLatestObserver<T1> _observer1;
  773. private CombineLatestObserver<T2> _observer2;
  774. private CombineLatestObserver<T3> _observer3;
  775. private CombineLatestObserver<T4> _observer4;
  776. private CombineLatestObserver<T5> _observer5;
  777. private CombineLatestObserver<T6> _observer6;
  778. private CombineLatestObserver<T7> _observer7;
  779. private CombineLatestObserver<T8> _observer8;
  780. private CombineLatestObserver<T9> _observer9;
  781. private CombineLatestObserver<T10> _observer10;
  782. private CombineLatestObserver<T11> _observer11;
  783. private CombineLatestObserver<T12> _observer12;
  784. private CombineLatestObserver<T13> _observer13;
  785. public IDisposable Run()
  786. {
  787. var subscriptions = new SingleAssignmentDisposable[13];
  788. for (int i = 0; i < 13; i++)
  789. subscriptions[i] = new SingleAssignmentDisposable();
  790. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  791. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  792. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  793. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  794. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  795. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  796. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  797. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  798. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  799. _observer10 = new CombineLatestObserver<T10>(_gate, this, 9, subscriptions[9]);
  800. _observer11 = new CombineLatestObserver<T11>(_gate, this, 10, subscriptions[10]);
  801. _observer12 = new CombineLatestObserver<T12>(_gate, this, 11, subscriptions[11]);
  802. _observer13 = new CombineLatestObserver<T13>(_gate, this, 12, subscriptions[12]);
  803. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  804. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  805. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  806. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  807. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  808. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  809. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  810. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  811. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  812. subscriptions[9].Disposable = _parent._source10.SubscribeSafe(_observer10);
  813. subscriptions[10].Disposable = _parent._source11.SubscribeSafe(_observer11);
  814. subscriptions[11].Disposable = _parent._source12.SubscribeSafe(_observer12);
  815. subscriptions[12].Disposable = _parent._source13.SubscribeSafe(_observer13);
  816. return StableCompositeDisposable.Create(subscriptions);
  817. }
  818. protected override TResult GetResult()
  819. {
  820. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value, _observer10.Value, _observer11.Value, _observer12.Value, _observer13.Value);
  821. }
  822. }
  823. }
  824. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult> : Producer<TResult>
  825. {
  826. private readonly IObservable<T1> _source1;
  827. private readonly IObservable<T2> _source2;
  828. private readonly IObservable<T3> _source3;
  829. private readonly IObservable<T4> _source4;
  830. private readonly IObservable<T5> _source5;
  831. private readonly IObservable<T6> _source6;
  832. private readonly IObservable<T7> _source7;
  833. private readonly IObservable<T8> _source8;
  834. private readonly IObservable<T9> _source9;
  835. private readonly IObservable<T10> _source10;
  836. private readonly IObservable<T11> _source11;
  837. private readonly IObservable<T12> _source12;
  838. private readonly IObservable<T13> _source13;
  839. private readonly IObservable<T14> _source14;
  840. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult> _resultSelector;
  841. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, IObservable<T10> source10, IObservable<T11> source11, IObservable<T12> source12, IObservable<T13> source13, IObservable<T14> source14, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult> resultSelector)
  842. {
  843. _source1 = source1;
  844. _source2 = source2;
  845. _source3 = source3;
  846. _source4 = source4;
  847. _source5 = source5;
  848. _source6 = source6;
  849. _source7 = source7;
  850. _source8 = source8;
  851. _source9 = source9;
  852. _source10 = source10;
  853. _source11 = source11;
  854. _source12 = source12;
  855. _source13 = source13;
  856. _source14 = source14;
  857. _resultSelector = resultSelector;
  858. }
  859. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  860. {
  861. var sink = new _(this, observer, cancel);
  862. setSink(sink);
  863. return sink.Run();
  864. }
  865. class _ : CombineLatestSink<TResult>
  866. {
  867. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult> _parent;
  868. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  869. : base(14, observer, cancel)
  870. {
  871. _parent = parent;
  872. }
  873. private CombineLatestObserver<T1> _observer1;
  874. private CombineLatestObserver<T2> _observer2;
  875. private CombineLatestObserver<T3> _observer3;
  876. private CombineLatestObserver<T4> _observer4;
  877. private CombineLatestObserver<T5> _observer5;
  878. private CombineLatestObserver<T6> _observer6;
  879. private CombineLatestObserver<T7> _observer7;
  880. private CombineLatestObserver<T8> _observer8;
  881. private CombineLatestObserver<T9> _observer9;
  882. private CombineLatestObserver<T10> _observer10;
  883. private CombineLatestObserver<T11> _observer11;
  884. private CombineLatestObserver<T12> _observer12;
  885. private CombineLatestObserver<T13> _observer13;
  886. private CombineLatestObserver<T14> _observer14;
  887. public IDisposable Run()
  888. {
  889. var subscriptions = new SingleAssignmentDisposable[14];
  890. for (int i = 0; i < 14; i++)
  891. subscriptions[i] = new SingleAssignmentDisposable();
  892. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  893. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  894. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  895. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  896. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  897. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  898. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  899. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  900. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  901. _observer10 = new CombineLatestObserver<T10>(_gate, this, 9, subscriptions[9]);
  902. _observer11 = new CombineLatestObserver<T11>(_gate, this, 10, subscriptions[10]);
  903. _observer12 = new CombineLatestObserver<T12>(_gate, this, 11, subscriptions[11]);
  904. _observer13 = new CombineLatestObserver<T13>(_gate, this, 12, subscriptions[12]);
  905. _observer14 = new CombineLatestObserver<T14>(_gate, this, 13, subscriptions[13]);
  906. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  907. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  908. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  909. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  910. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  911. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  912. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  913. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  914. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  915. subscriptions[9].Disposable = _parent._source10.SubscribeSafe(_observer10);
  916. subscriptions[10].Disposable = _parent._source11.SubscribeSafe(_observer11);
  917. subscriptions[11].Disposable = _parent._source12.SubscribeSafe(_observer12);
  918. subscriptions[12].Disposable = _parent._source13.SubscribeSafe(_observer13);
  919. subscriptions[13].Disposable = _parent._source14.SubscribeSafe(_observer14);
  920. return StableCompositeDisposable.Create(subscriptions);
  921. }
  922. protected override TResult GetResult()
  923. {
  924. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value, _observer10.Value, _observer11.Value, _observer12.Value, _observer13.Value, _observer14.Value);
  925. }
  926. }
  927. }
  928. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult> : Producer<TResult>
  929. {
  930. private readonly IObservable<T1> _source1;
  931. private readonly IObservable<T2> _source2;
  932. private readonly IObservable<T3> _source3;
  933. private readonly IObservable<T4> _source4;
  934. private readonly IObservable<T5> _source5;
  935. private readonly IObservable<T6> _source6;
  936. private readonly IObservable<T7> _source7;
  937. private readonly IObservable<T8> _source8;
  938. private readonly IObservable<T9> _source9;
  939. private readonly IObservable<T10> _source10;
  940. private readonly IObservable<T11> _source11;
  941. private readonly IObservable<T12> _source12;
  942. private readonly IObservable<T13> _source13;
  943. private readonly IObservable<T14> _source14;
  944. private readonly IObservable<T15> _source15;
  945. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult> _resultSelector;
  946. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, IObservable<T10> source10, IObservable<T11> source11, IObservable<T12> source12, IObservable<T13> source13, IObservable<T14> source14, IObservable<T15> source15, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult> resultSelector)
  947. {
  948. _source1 = source1;
  949. _source2 = source2;
  950. _source3 = source3;
  951. _source4 = source4;
  952. _source5 = source5;
  953. _source6 = source6;
  954. _source7 = source7;
  955. _source8 = source8;
  956. _source9 = source9;
  957. _source10 = source10;
  958. _source11 = source11;
  959. _source12 = source12;
  960. _source13 = source13;
  961. _source14 = source14;
  962. _source15 = source15;
  963. _resultSelector = resultSelector;
  964. }
  965. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  966. {
  967. var sink = new _(this, observer, cancel);
  968. setSink(sink);
  969. return sink.Run();
  970. }
  971. class _ : CombineLatestSink<TResult>
  972. {
  973. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult> _parent;
  974. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  975. : base(15, observer, cancel)
  976. {
  977. _parent = parent;
  978. }
  979. private CombineLatestObserver<T1> _observer1;
  980. private CombineLatestObserver<T2> _observer2;
  981. private CombineLatestObserver<T3> _observer3;
  982. private CombineLatestObserver<T4> _observer4;
  983. private CombineLatestObserver<T5> _observer5;
  984. private CombineLatestObserver<T6> _observer6;
  985. private CombineLatestObserver<T7> _observer7;
  986. private CombineLatestObserver<T8> _observer8;
  987. private CombineLatestObserver<T9> _observer9;
  988. private CombineLatestObserver<T10> _observer10;
  989. private CombineLatestObserver<T11> _observer11;
  990. private CombineLatestObserver<T12> _observer12;
  991. private CombineLatestObserver<T13> _observer13;
  992. private CombineLatestObserver<T14> _observer14;
  993. private CombineLatestObserver<T15> _observer15;
  994. public IDisposable Run()
  995. {
  996. var subscriptions = new SingleAssignmentDisposable[15];
  997. for (int i = 0; i < 15; i++)
  998. subscriptions[i] = new SingleAssignmentDisposable();
  999. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  1000. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  1001. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  1002. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  1003. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  1004. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  1005. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  1006. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  1007. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  1008. _observer10 = new CombineLatestObserver<T10>(_gate, this, 9, subscriptions[9]);
  1009. _observer11 = new CombineLatestObserver<T11>(_gate, this, 10, subscriptions[10]);
  1010. _observer12 = new CombineLatestObserver<T12>(_gate, this, 11, subscriptions[11]);
  1011. _observer13 = new CombineLatestObserver<T13>(_gate, this, 12, subscriptions[12]);
  1012. _observer14 = new CombineLatestObserver<T14>(_gate, this, 13, subscriptions[13]);
  1013. _observer15 = new CombineLatestObserver<T15>(_gate, this, 14, subscriptions[14]);
  1014. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  1015. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  1016. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  1017. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  1018. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  1019. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  1020. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  1021. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  1022. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  1023. subscriptions[9].Disposable = _parent._source10.SubscribeSafe(_observer10);
  1024. subscriptions[10].Disposable = _parent._source11.SubscribeSafe(_observer11);
  1025. subscriptions[11].Disposable = _parent._source12.SubscribeSafe(_observer12);
  1026. subscriptions[12].Disposable = _parent._source13.SubscribeSafe(_observer13);
  1027. subscriptions[13].Disposable = _parent._source14.SubscribeSafe(_observer14);
  1028. subscriptions[14].Disposable = _parent._source15.SubscribeSafe(_observer15);
  1029. return StableCompositeDisposable.Create(subscriptions);
  1030. }
  1031. protected override TResult GetResult()
  1032. {
  1033. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value, _observer10.Value, _observer11.Value, _observer12.Value, _observer13.Value, _observer14.Value, _observer15.Value);
  1034. }
  1035. }
  1036. }
  1037. internal sealed class CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult> : Producer<TResult>
  1038. {
  1039. private readonly IObservable<T1> _source1;
  1040. private readonly IObservable<T2> _source2;
  1041. private readonly IObservable<T3> _source3;
  1042. private readonly IObservable<T4> _source4;
  1043. private readonly IObservable<T5> _source5;
  1044. private readonly IObservable<T6> _source6;
  1045. private readonly IObservable<T7> _source7;
  1046. private readonly IObservable<T8> _source8;
  1047. private readonly IObservable<T9> _source9;
  1048. private readonly IObservable<T10> _source10;
  1049. private readonly IObservable<T11> _source11;
  1050. private readonly IObservable<T12> _source12;
  1051. private readonly IObservable<T13> _source13;
  1052. private readonly IObservable<T14> _source14;
  1053. private readonly IObservable<T15> _source15;
  1054. private readonly IObservable<T16> _source16;
  1055. private readonly Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult> _resultSelector;
  1056. public CombineLatest(IObservable<T1> source1, IObservable<T2> source2, IObservable<T3> source3, IObservable<T4> source4, IObservable<T5> source5, IObservable<T6> source6, IObservable<T7> source7, IObservable<T8> source8, IObservable<T9> source9, IObservable<T10> source10, IObservable<T11> source11, IObservable<T12> source12, IObservable<T13> source13, IObservable<T14> source14, IObservable<T15> source15, IObservable<T16> source16, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult> resultSelector)
  1057. {
  1058. _source1 = source1;
  1059. _source2 = source2;
  1060. _source3 = source3;
  1061. _source4 = source4;
  1062. _source5 = source5;
  1063. _source6 = source6;
  1064. _source7 = source7;
  1065. _source8 = source8;
  1066. _source9 = source9;
  1067. _source10 = source10;
  1068. _source11 = source11;
  1069. _source12 = source12;
  1070. _source13 = source13;
  1071. _source14 = source14;
  1072. _source15 = source15;
  1073. _source16 = source16;
  1074. _resultSelector = resultSelector;
  1075. }
  1076. protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
  1077. {
  1078. var sink = new _(this, observer, cancel);
  1079. setSink(sink);
  1080. return sink.Run();
  1081. }
  1082. class _ : CombineLatestSink<TResult>
  1083. {
  1084. private readonly CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult> _parent;
  1085. public _(CombineLatest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
  1086. : base(16, observer, cancel)
  1087. {
  1088. _parent = parent;
  1089. }
  1090. private CombineLatestObserver<T1> _observer1;
  1091. private CombineLatestObserver<T2> _observer2;
  1092. private CombineLatestObserver<T3> _observer3;
  1093. private CombineLatestObserver<T4> _observer4;
  1094. private CombineLatestObserver<T5> _observer5;
  1095. private CombineLatestObserver<T6> _observer6;
  1096. private CombineLatestObserver<T7> _observer7;
  1097. private CombineLatestObserver<T8> _observer8;
  1098. private CombineLatestObserver<T9> _observer9;
  1099. private CombineLatestObserver<T10> _observer10;
  1100. private CombineLatestObserver<T11> _observer11;
  1101. private CombineLatestObserver<T12> _observer12;
  1102. private CombineLatestObserver<T13> _observer13;
  1103. private CombineLatestObserver<T14> _observer14;
  1104. private CombineLatestObserver<T15> _observer15;
  1105. private CombineLatestObserver<T16> _observer16;
  1106. public IDisposable Run()
  1107. {
  1108. var subscriptions = new SingleAssignmentDisposable[16];
  1109. for (int i = 0; i < 16; i++)
  1110. subscriptions[i] = new SingleAssignmentDisposable();
  1111. _observer1 = new CombineLatestObserver<T1>(_gate, this, 0, subscriptions[0]);
  1112. _observer2 = new CombineLatestObserver<T2>(_gate, this, 1, subscriptions[1]);
  1113. _observer3 = new CombineLatestObserver<T3>(_gate, this, 2, subscriptions[2]);
  1114. _observer4 = new CombineLatestObserver<T4>(_gate, this, 3, subscriptions[3]);
  1115. _observer5 = new CombineLatestObserver<T5>(_gate, this, 4, subscriptions[4]);
  1116. _observer6 = new CombineLatestObserver<T6>(_gate, this, 5, subscriptions[5]);
  1117. _observer7 = new CombineLatestObserver<T7>(_gate, this, 6, subscriptions[6]);
  1118. _observer8 = new CombineLatestObserver<T8>(_gate, this, 7, subscriptions[7]);
  1119. _observer9 = new CombineLatestObserver<T9>(_gate, this, 8, subscriptions[8]);
  1120. _observer10 = new CombineLatestObserver<T10>(_gate, this, 9, subscriptions[9]);
  1121. _observer11 = new CombineLatestObserver<T11>(_gate, this, 10, subscriptions[10]);
  1122. _observer12 = new CombineLatestObserver<T12>(_gate, this, 11, subscriptions[11]);
  1123. _observer13 = new CombineLatestObserver<T13>(_gate, this, 12, subscriptions[12]);
  1124. _observer14 = new CombineLatestObserver<T14>(_gate, this, 13, subscriptions[13]);
  1125. _observer15 = new CombineLatestObserver<T15>(_gate, this, 14, subscriptions[14]);
  1126. _observer16 = new CombineLatestObserver<T16>(_gate, this, 15, subscriptions[15]);
  1127. subscriptions[0].Disposable = _parent._source1.SubscribeSafe(_observer1);
  1128. subscriptions[1].Disposable = _parent._source2.SubscribeSafe(_observer2);
  1129. subscriptions[2].Disposable = _parent._source3.SubscribeSafe(_observer3);
  1130. subscriptions[3].Disposable = _parent._source4.SubscribeSafe(_observer4);
  1131. subscriptions[4].Disposable = _parent._source5.SubscribeSafe(_observer5);
  1132. subscriptions[5].Disposable = _parent._source6.SubscribeSafe(_observer6);
  1133. subscriptions[6].Disposable = _parent._source7.SubscribeSafe(_observer7);
  1134. subscriptions[7].Disposable = _parent._source8.SubscribeSafe(_observer8);
  1135. subscriptions[8].Disposable = _parent._source9.SubscribeSafe(_observer9);
  1136. subscriptions[9].Disposable = _parent._source10.SubscribeSafe(_observer10);
  1137. subscriptions[10].Disposable = _parent._source11.SubscribeSafe(_observer11);
  1138. subscriptions[11].Disposable = _parent._source12.SubscribeSafe(_observer12);
  1139. subscriptions[12].Disposable = _parent._source13.SubscribeSafe(_observer13);
  1140. subscriptions[13].Disposable = _parent._source14.SubscribeSafe(_observer14);
  1141. subscriptions[14].Disposable = _parent._source15.SubscribeSafe(_observer15);
  1142. subscriptions[15].Disposable = _parent._source16.SubscribeSafe(_observer16);
  1143. return StableCompositeDisposable.Create(subscriptions);
  1144. }
  1145. protected override TResult GetResult()
  1146. {
  1147. return _parent._resultSelector(_observer1.Value, _observer2.Value, _observer3.Value, _observer4.Value, _observer5.Value, _observer6.Value, _observer7.Value, _observer8.Value, _observer9.Value, _observer10.Value, _observer11.Value, _observer12.Value, _observer13.Value, _observer14.Value, _observer15.Value, _observer16.Value);
  1148. }
  1149. }
  1150. }
  1151. #endregion
  1152. #endregion
  1153. }