ActiveAsyncPlan.Generated.cs 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT License.
  3. // See the LICENSE file in the project root for more information.
  4. using System.Threading.Tasks;
  5. namespace System.Reactive.Joins
  6. {
  7. internal sealed class ActiveAsyncPlan<TSource1> : ActiveAsyncPlan
  8. {
  9. private readonly Func<TSource1, Task> _onNext;
  10. private readonly Func<Task> _onCompleted;
  11. private readonly AsyncJoinObserver<TSource1> _observer1;
  12. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, Func<TSource1, Task> onNext, Func<Task> onCompleted)
  13. {
  14. _onNext = onNext;
  15. _onCompleted = onCompleted;
  16. _observer1 = observer1;
  17. AddJoinObserver(observer1);
  18. }
  19. internal override Task Match()
  20. {
  21. if (_observer1.Queue.Count > 0)
  22. {
  23. var notification1 = _observer1.Queue.Peek();
  24. if (notification1.Kind == NotificationKind.OnCompleted)
  25. {
  26. return _onCompleted();
  27. }
  28. Dequeue();
  29. return _onNext(notification1.Value);
  30. }
  31. return Task.CompletedTask;
  32. }
  33. }
  34. internal sealed class ActiveAsyncPlan<TSource1, TSource2> : ActiveAsyncPlan
  35. {
  36. private readonly Func<TSource1, TSource2, Task> _onNext;
  37. private readonly Func<Task> _onCompleted;
  38. private readonly AsyncJoinObserver<TSource1> _observer1;
  39. private readonly AsyncJoinObserver<TSource2> _observer2;
  40. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, Func<TSource1, TSource2, Task> onNext, Func<Task> onCompleted)
  41. {
  42. _onNext = onNext;
  43. _onCompleted = onCompleted;
  44. _observer1 = observer1;
  45. _observer2 = observer2;
  46. AddJoinObserver(observer1);
  47. AddJoinObserver(observer2);
  48. }
  49. internal override Task Match()
  50. {
  51. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0)
  52. {
  53. var notification1 = _observer1.Queue.Peek();
  54. var notification2 = _observer2.Queue.Peek();
  55. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted)
  56. {
  57. return _onCompleted();
  58. }
  59. Dequeue();
  60. return _onNext(notification1.Value, notification2.Value);
  61. }
  62. return Task.CompletedTask;
  63. }
  64. }
  65. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3> : ActiveAsyncPlan
  66. {
  67. private readonly Func<TSource1, TSource2, TSource3, Task> _onNext;
  68. private readonly Func<Task> _onCompleted;
  69. private readonly AsyncJoinObserver<TSource1> _observer1;
  70. private readonly AsyncJoinObserver<TSource2> _observer2;
  71. private readonly AsyncJoinObserver<TSource3> _observer3;
  72. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, Func<TSource1, TSource2, TSource3, Task> onNext, Func<Task> onCompleted)
  73. {
  74. _onNext = onNext;
  75. _onCompleted = onCompleted;
  76. _observer1 = observer1;
  77. _observer2 = observer2;
  78. _observer3 = observer3;
  79. AddJoinObserver(observer1);
  80. AddJoinObserver(observer2);
  81. AddJoinObserver(observer3);
  82. }
  83. internal override Task Match()
  84. {
  85. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0)
  86. {
  87. var notification1 = _observer1.Queue.Peek();
  88. var notification2 = _observer2.Queue.Peek();
  89. var notification3 = _observer3.Queue.Peek();
  90. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted)
  91. {
  92. return _onCompleted();
  93. }
  94. Dequeue();
  95. return _onNext(notification1.Value, notification2.Value, notification3.Value);
  96. }
  97. return Task.CompletedTask;
  98. }
  99. }
  100. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4> : ActiveAsyncPlan
  101. {
  102. private readonly Func<TSource1, TSource2, TSource3, TSource4, Task> _onNext;
  103. private readonly Func<Task> _onCompleted;
  104. private readonly AsyncJoinObserver<TSource1> _observer1;
  105. private readonly AsyncJoinObserver<TSource2> _observer2;
  106. private readonly AsyncJoinObserver<TSource3> _observer3;
  107. private readonly AsyncJoinObserver<TSource4> _observer4;
  108. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, Func<TSource1, TSource2, TSource3, TSource4, Task> onNext, Func<Task> onCompleted)
  109. {
  110. _onNext = onNext;
  111. _onCompleted = onCompleted;
  112. _observer1 = observer1;
  113. _observer2 = observer2;
  114. _observer3 = observer3;
  115. _observer4 = observer4;
  116. AddJoinObserver(observer1);
  117. AddJoinObserver(observer2);
  118. AddJoinObserver(observer3);
  119. AddJoinObserver(observer4);
  120. }
  121. internal override Task Match()
  122. {
  123. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0)
  124. {
  125. var notification1 = _observer1.Queue.Peek();
  126. var notification2 = _observer2.Queue.Peek();
  127. var notification3 = _observer3.Queue.Peek();
  128. var notification4 = _observer4.Queue.Peek();
  129. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted)
  130. {
  131. return _onCompleted();
  132. }
  133. Dequeue();
  134. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value);
  135. }
  136. return Task.CompletedTask;
  137. }
  138. }
  139. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5> : ActiveAsyncPlan
  140. {
  141. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, Task> _onNext;
  142. private readonly Func<Task> _onCompleted;
  143. private readonly AsyncJoinObserver<TSource1> _observer1;
  144. private readonly AsyncJoinObserver<TSource2> _observer2;
  145. private readonly AsyncJoinObserver<TSource3> _observer3;
  146. private readonly AsyncJoinObserver<TSource4> _observer4;
  147. private readonly AsyncJoinObserver<TSource5> _observer5;
  148. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, Func<TSource1, TSource2, TSource3, TSource4, TSource5, Task> onNext, Func<Task> onCompleted)
  149. {
  150. _onNext = onNext;
  151. _onCompleted = onCompleted;
  152. _observer1 = observer1;
  153. _observer2 = observer2;
  154. _observer3 = observer3;
  155. _observer4 = observer4;
  156. _observer5 = observer5;
  157. AddJoinObserver(observer1);
  158. AddJoinObserver(observer2);
  159. AddJoinObserver(observer3);
  160. AddJoinObserver(observer4);
  161. AddJoinObserver(observer5);
  162. }
  163. internal override Task Match()
  164. {
  165. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0)
  166. {
  167. var notification1 = _observer1.Queue.Peek();
  168. var notification2 = _observer2.Queue.Peek();
  169. var notification3 = _observer3.Queue.Peek();
  170. var notification4 = _observer4.Queue.Peek();
  171. var notification5 = _observer5.Queue.Peek();
  172. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted)
  173. {
  174. return _onCompleted();
  175. }
  176. Dequeue();
  177. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value);
  178. }
  179. return Task.CompletedTask;
  180. }
  181. }
  182. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6> : ActiveAsyncPlan
  183. {
  184. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, Task> _onNext;
  185. private readonly Func<Task> _onCompleted;
  186. private readonly AsyncJoinObserver<TSource1> _observer1;
  187. private readonly AsyncJoinObserver<TSource2> _observer2;
  188. private readonly AsyncJoinObserver<TSource3> _observer3;
  189. private readonly AsyncJoinObserver<TSource4> _observer4;
  190. private readonly AsyncJoinObserver<TSource5> _observer5;
  191. private readonly AsyncJoinObserver<TSource6> _observer6;
  192. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, Task> onNext, Func<Task> onCompleted)
  193. {
  194. _onNext = onNext;
  195. _onCompleted = onCompleted;
  196. _observer1 = observer1;
  197. _observer2 = observer2;
  198. _observer3 = observer3;
  199. _observer4 = observer4;
  200. _observer5 = observer5;
  201. _observer6 = observer6;
  202. AddJoinObserver(observer1);
  203. AddJoinObserver(observer2);
  204. AddJoinObserver(observer3);
  205. AddJoinObserver(observer4);
  206. AddJoinObserver(observer5);
  207. AddJoinObserver(observer6);
  208. }
  209. internal override Task Match()
  210. {
  211. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0)
  212. {
  213. var notification1 = _observer1.Queue.Peek();
  214. var notification2 = _observer2.Queue.Peek();
  215. var notification3 = _observer3.Queue.Peek();
  216. var notification4 = _observer4.Queue.Peek();
  217. var notification5 = _observer5.Queue.Peek();
  218. var notification6 = _observer6.Queue.Peek();
  219. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted)
  220. {
  221. return _onCompleted();
  222. }
  223. Dequeue();
  224. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value);
  225. }
  226. return Task.CompletedTask;
  227. }
  228. }
  229. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7> : ActiveAsyncPlan
  230. {
  231. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, Task> _onNext;
  232. private readonly Func<Task> _onCompleted;
  233. private readonly AsyncJoinObserver<TSource1> _observer1;
  234. private readonly AsyncJoinObserver<TSource2> _observer2;
  235. private readonly AsyncJoinObserver<TSource3> _observer3;
  236. private readonly AsyncJoinObserver<TSource4> _observer4;
  237. private readonly AsyncJoinObserver<TSource5> _observer5;
  238. private readonly AsyncJoinObserver<TSource6> _observer6;
  239. private readonly AsyncJoinObserver<TSource7> _observer7;
  240. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, Task> onNext, Func<Task> onCompleted)
  241. {
  242. _onNext = onNext;
  243. _onCompleted = onCompleted;
  244. _observer1 = observer1;
  245. _observer2 = observer2;
  246. _observer3 = observer3;
  247. _observer4 = observer4;
  248. _observer5 = observer5;
  249. _observer6 = observer6;
  250. _observer7 = observer7;
  251. AddJoinObserver(observer1);
  252. AddJoinObserver(observer2);
  253. AddJoinObserver(observer3);
  254. AddJoinObserver(observer4);
  255. AddJoinObserver(observer5);
  256. AddJoinObserver(observer6);
  257. AddJoinObserver(observer7);
  258. }
  259. internal override Task Match()
  260. {
  261. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0)
  262. {
  263. var notification1 = _observer1.Queue.Peek();
  264. var notification2 = _observer2.Queue.Peek();
  265. var notification3 = _observer3.Queue.Peek();
  266. var notification4 = _observer4.Queue.Peek();
  267. var notification5 = _observer5.Queue.Peek();
  268. var notification6 = _observer6.Queue.Peek();
  269. var notification7 = _observer7.Queue.Peek();
  270. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted)
  271. {
  272. return _onCompleted();
  273. }
  274. Dequeue();
  275. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value);
  276. }
  277. return Task.CompletedTask;
  278. }
  279. }
  280. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8> : ActiveAsyncPlan
  281. {
  282. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, Task> _onNext;
  283. private readonly Func<Task> _onCompleted;
  284. private readonly AsyncJoinObserver<TSource1> _observer1;
  285. private readonly AsyncJoinObserver<TSource2> _observer2;
  286. private readonly AsyncJoinObserver<TSource3> _observer3;
  287. private readonly AsyncJoinObserver<TSource4> _observer4;
  288. private readonly AsyncJoinObserver<TSource5> _observer5;
  289. private readonly AsyncJoinObserver<TSource6> _observer6;
  290. private readonly AsyncJoinObserver<TSource7> _observer7;
  291. private readonly AsyncJoinObserver<TSource8> _observer8;
  292. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, Task> onNext, Func<Task> onCompleted)
  293. {
  294. _onNext = onNext;
  295. _onCompleted = onCompleted;
  296. _observer1 = observer1;
  297. _observer2 = observer2;
  298. _observer3 = observer3;
  299. _observer4 = observer4;
  300. _observer5 = observer5;
  301. _observer6 = observer6;
  302. _observer7 = observer7;
  303. _observer8 = observer8;
  304. AddJoinObserver(observer1);
  305. AddJoinObserver(observer2);
  306. AddJoinObserver(observer3);
  307. AddJoinObserver(observer4);
  308. AddJoinObserver(observer5);
  309. AddJoinObserver(observer6);
  310. AddJoinObserver(observer7);
  311. AddJoinObserver(observer8);
  312. }
  313. internal override Task Match()
  314. {
  315. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0)
  316. {
  317. var notification1 = _observer1.Queue.Peek();
  318. var notification2 = _observer2.Queue.Peek();
  319. var notification3 = _observer3.Queue.Peek();
  320. var notification4 = _observer4.Queue.Peek();
  321. var notification5 = _observer5.Queue.Peek();
  322. var notification6 = _observer6.Queue.Peek();
  323. var notification7 = _observer7.Queue.Peek();
  324. var notification8 = _observer8.Queue.Peek();
  325. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted)
  326. {
  327. return _onCompleted();
  328. }
  329. Dequeue();
  330. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value);
  331. }
  332. return Task.CompletedTask;
  333. }
  334. }
  335. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9> : ActiveAsyncPlan
  336. {
  337. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, Task> _onNext;
  338. private readonly Func<Task> _onCompleted;
  339. private readonly AsyncJoinObserver<TSource1> _observer1;
  340. private readonly AsyncJoinObserver<TSource2> _observer2;
  341. private readonly AsyncJoinObserver<TSource3> _observer3;
  342. private readonly AsyncJoinObserver<TSource4> _observer4;
  343. private readonly AsyncJoinObserver<TSource5> _observer5;
  344. private readonly AsyncJoinObserver<TSource6> _observer6;
  345. private readonly AsyncJoinObserver<TSource7> _observer7;
  346. private readonly AsyncJoinObserver<TSource8> _observer8;
  347. private readonly AsyncJoinObserver<TSource9> _observer9;
  348. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, Task> onNext, Func<Task> onCompleted)
  349. {
  350. _onNext = onNext;
  351. _onCompleted = onCompleted;
  352. _observer1 = observer1;
  353. _observer2 = observer2;
  354. _observer3 = observer3;
  355. _observer4 = observer4;
  356. _observer5 = observer5;
  357. _observer6 = observer6;
  358. _observer7 = observer7;
  359. _observer8 = observer8;
  360. _observer9 = observer9;
  361. AddJoinObserver(observer1);
  362. AddJoinObserver(observer2);
  363. AddJoinObserver(observer3);
  364. AddJoinObserver(observer4);
  365. AddJoinObserver(observer5);
  366. AddJoinObserver(observer6);
  367. AddJoinObserver(observer7);
  368. AddJoinObserver(observer8);
  369. AddJoinObserver(observer9);
  370. }
  371. internal override Task Match()
  372. {
  373. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0)
  374. {
  375. var notification1 = _observer1.Queue.Peek();
  376. var notification2 = _observer2.Queue.Peek();
  377. var notification3 = _observer3.Queue.Peek();
  378. var notification4 = _observer4.Queue.Peek();
  379. var notification5 = _observer5.Queue.Peek();
  380. var notification6 = _observer6.Queue.Peek();
  381. var notification7 = _observer7.Queue.Peek();
  382. var notification8 = _observer8.Queue.Peek();
  383. var notification9 = _observer9.Queue.Peek();
  384. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted)
  385. {
  386. return _onCompleted();
  387. }
  388. Dequeue();
  389. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value);
  390. }
  391. return Task.CompletedTask;
  392. }
  393. }
  394. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10> : ActiveAsyncPlan
  395. {
  396. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, Task> _onNext;
  397. private readonly Func<Task> _onCompleted;
  398. private readonly AsyncJoinObserver<TSource1> _observer1;
  399. private readonly AsyncJoinObserver<TSource2> _observer2;
  400. private readonly AsyncJoinObserver<TSource3> _observer3;
  401. private readonly AsyncJoinObserver<TSource4> _observer4;
  402. private readonly AsyncJoinObserver<TSource5> _observer5;
  403. private readonly AsyncJoinObserver<TSource6> _observer6;
  404. private readonly AsyncJoinObserver<TSource7> _observer7;
  405. private readonly AsyncJoinObserver<TSource8> _observer8;
  406. private readonly AsyncJoinObserver<TSource9> _observer9;
  407. private readonly AsyncJoinObserver<TSource10> _observer10;
  408. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, AsyncJoinObserver<TSource10> observer10, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, Task> onNext, Func<Task> onCompleted)
  409. {
  410. _onNext = onNext;
  411. _onCompleted = onCompleted;
  412. _observer1 = observer1;
  413. _observer2 = observer2;
  414. _observer3 = observer3;
  415. _observer4 = observer4;
  416. _observer5 = observer5;
  417. _observer6 = observer6;
  418. _observer7 = observer7;
  419. _observer8 = observer8;
  420. _observer9 = observer9;
  421. _observer10 = observer10;
  422. AddJoinObserver(observer1);
  423. AddJoinObserver(observer2);
  424. AddJoinObserver(observer3);
  425. AddJoinObserver(observer4);
  426. AddJoinObserver(observer5);
  427. AddJoinObserver(observer6);
  428. AddJoinObserver(observer7);
  429. AddJoinObserver(observer8);
  430. AddJoinObserver(observer9);
  431. AddJoinObserver(observer10);
  432. }
  433. internal override Task Match()
  434. {
  435. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0 && _observer10.Queue.Count > 0)
  436. {
  437. var notification1 = _observer1.Queue.Peek();
  438. var notification2 = _observer2.Queue.Peek();
  439. var notification3 = _observer3.Queue.Peek();
  440. var notification4 = _observer4.Queue.Peek();
  441. var notification5 = _observer5.Queue.Peek();
  442. var notification6 = _observer6.Queue.Peek();
  443. var notification7 = _observer7.Queue.Peek();
  444. var notification8 = _observer8.Queue.Peek();
  445. var notification9 = _observer9.Queue.Peek();
  446. var notification10 = _observer10.Queue.Peek();
  447. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted || notification10.Kind == NotificationKind.OnCompleted)
  448. {
  449. return _onCompleted();
  450. }
  451. Dequeue();
  452. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value, notification10.Value);
  453. }
  454. return Task.CompletedTask;
  455. }
  456. }
  457. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11> : ActiveAsyncPlan
  458. {
  459. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, Task> _onNext;
  460. private readonly Func<Task> _onCompleted;
  461. private readonly AsyncJoinObserver<TSource1> _observer1;
  462. private readonly AsyncJoinObserver<TSource2> _observer2;
  463. private readonly AsyncJoinObserver<TSource3> _observer3;
  464. private readonly AsyncJoinObserver<TSource4> _observer4;
  465. private readonly AsyncJoinObserver<TSource5> _observer5;
  466. private readonly AsyncJoinObserver<TSource6> _observer6;
  467. private readonly AsyncJoinObserver<TSource7> _observer7;
  468. private readonly AsyncJoinObserver<TSource8> _observer8;
  469. private readonly AsyncJoinObserver<TSource9> _observer9;
  470. private readonly AsyncJoinObserver<TSource10> _observer10;
  471. private readonly AsyncJoinObserver<TSource11> _observer11;
  472. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, AsyncJoinObserver<TSource10> observer10, AsyncJoinObserver<TSource11> observer11, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, Task> onNext, Func<Task> onCompleted)
  473. {
  474. _onNext = onNext;
  475. _onCompleted = onCompleted;
  476. _observer1 = observer1;
  477. _observer2 = observer2;
  478. _observer3 = observer3;
  479. _observer4 = observer4;
  480. _observer5 = observer5;
  481. _observer6 = observer6;
  482. _observer7 = observer7;
  483. _observer8 = observer8;
  484. _observer9 = observer9;
  485. _observer10 = observer10;
  486. _observer11 = observer11;
  487. AddJoinObserver(observer1);
  488. AddJoinObserver(observer2);
  489. AddJoinObserver(observer3);
  490. AddJoinObserver(observer4);
  491. AddJoinObserver(observer5);
  492. AddJoinObserver(observer6);
  493. AddJoinObserver(observer7);
  494. AddJoinObserver(observer8);
  495. AddJoinObserver(observer9);
  496. AddJoinObserver(observer10);
  497. AddJoinObserver(observer11);
  498. }
  499. internal override Task Match()
  500. {
  501. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0 && _observer10.Queue.Count > 0 && _observer11.Queue.Count > 0)
  502. {
  503. var notification1 = _observer1.Queue.Peek();
  504. var notification2 = _observer2.Queue.Peek();
  505. var notification3 = _observer3.Queue.Peek();
  506. var notification4 = _observer4.Queue.Peek();
  507. var notification5 = _observer5.Queue.Peek();
  508. var notification6 = _observer6.Queue.Peek();
  509. var notification7 = _observer7.Queue.Peek();
  510. var notification8 = _observer8.Queue.Peek();
  511. var notification9 = _observer9.Queue.Peek();
  512. var notification10 = _observer10.Queue.Peek();
  513. var notification11 = _observer11.Queue.Peek();
  514. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted || notification10.Kind == NotificationKind.OnCompleted || notification11.Kind == NotificationKind.OnCompleted)
  515. {
  516. return _onCompleted();
  517. }
  518. Dequeue();
  519. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value, notification10.Value, notification11.Value);
  520. }
  521. return Task.CompletedTask;
  522. }
  523. }
  524. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12> : ActiveAsyncPlan
  525. {
  526. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, Task> _onNext;
  527. private readonly Func<Task> _onCompleted;
  528. private readonly AsyncJoinObserver<TSource1> _observer1;
  529. private readonly AsyncJoinObserver<TSource2> _observer2;
  530. private readonly AsyncJoinObserver<TSource3> _observer3;
  531. private readonly AsyncJoinObserver<TSource4> _observer4;
  532. private readonly AsyncJoinObserver<TSource5> _observer5;
  533. private readonly AsyncJoinObserver<TSource6> _observer6;
  534. private readonly AsyncJoinObserver<TSource7> _observer7;
  535. private readonly AsyncJoinObserver<TSource8> _observer8;
  536. private readonly AsyncJoinObserver<TSource9> _observer9;
  537. private readonly AsyncJoinObserver<TSource10> _observer10;
  538. private readonly AsyncJoinObserver<TSource11> _observer11;
  539. private readonly AsyncJoinObserver<TSource12> _observer12;
  540. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, AsyncJoinObserver<TSource10> observer10, AsyncJoinObserver<TSource11> observer11, AsyncJoinObserver<TSource12> observer12, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, Task> onNext, Func<Task> onCompleted)
  541. {
  542. _onNext = onNext;
  543. _onCompleted = onCompleted;
  544. _observer1 = observer1;
  545. _observer2 = observer2;
  546. _observer3 = observer3;
  547. _observer4 = observer4;
  548. _observer5 = observer5;
  549. _observer6 = observer6;
  550. _observer7 = observer7;
  551. _observer8 = observer8;
  552. _observer9 = observer9;
  553. _observer10 = observer10;
  554. _observer11 = observer11;
  555. _observer12 = observer12;
  556. AddJoinObserver(observer1);
  557. AddJoinObserver(observer2);
  558. AddJoinObserver(observer3);
  559. AddJoinObserver(observer4);
  560. AddJoinObserver(observer5);
  561. AddJoinObserver(observer6);
  562. AddJoinObserver(observer7);
  563. AddJoinObserver(observer8);
  564. AddJoinObserver(observer9);
  565. AddJoinObserver(observer10);
  566. AddJoinObserver(observer11);
  567. AddJoinObserver(observer12);
  568. }
  569. internal override Task Match()
  570. {
  571. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0 && _observer10.Queue.Count > 0 && _observer11.Queue.Count > 0 && _observer12.Queue.Count > 0)
  572. {
  573. var notification1 = _observer1.Queue.Peek();
  574. var notification2 = _observer2.Queue.Peek();
  575. var notification3 = _observer3.Queue.Peek();
  576. var notification4 = _observer4.Queue.Peek();
  577. var notification5 = _observer5.Queue.Peek();
  578. var notification6 = _observer6.Queue.Peek();
  579. var notification7 = _observer7.Queue.Peek();
  580. var notification8 = _observer8.Queue.Peek();
  581. var notification9 = _observer9.Queue.Peek();
  582. var notification10 = _observer10.Queue.Peek();
  583. var notification11 = _observer11.Queue.Peek();
  584. var notification12 = _observer12.Queue.Peek();
  585. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted || notification10.Kind == NotificationKind.OnCompleted || notification11.Kind == NotificationKind.OnCompleted || notification12.Kind == NotificationKind.OnCompleted)
  586. {
  587. return _onCompleted();
  588. }
  589. Dequeue();
  590. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value, notification10.Value, notification11.Value, notification12.Value);
  591. }
  592. return Task.CompletedTask;
  593. }
  594. }
  595. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13> : ActiveAsyncPlan
  596. {
  597. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, Task> _onNext;
  598. private readonly Func<Task> _onCompleted;
  599. private readonly AsyncJoinObserver<TSource1> _observer1;
  600. private readonly AsyncJoinObserver<TSource2> _observer2;
  601. private readonly AsyncJoinObserver<TSource3> _observer3;
  602. private readonly AsyncJoinObserver<TSource4> _observer4;
  603. private readonly AsyncJoinObserver<TSource5> _observer5;
  604. private readonly AsyncJoinObserver<TSource6> _observer6;
  605. private readonly AsyncJoinObserver<TSource7> _observer7;
  606. private readonly AsyncJoinObserver<TSource8> _observer8;
  607. private readonly AsyncJoinObserver<TSource9> _observer9;
  608. private readonly AsyncJoinObserver<TSource10> _observer10;
  609. private readonly AsyncJoinObserver<TSource11> _observer11;
  610. private readonly AsyncJoinObserver<TSource12> _observer12;
  611. private readonly AsyncJoinObserver<TSource13> _observer13;
  612. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, AsyncJoinObserver<TSource10> observer10, AsyncJoinObserver<TSource11> observer11, AsyncJoinObserver<TSource12> observer12, AsyncJoinObserver<TSource13> observer13, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, Task> onNext, Func<Task> onCompleted)
  613. {
  614. _onNext = onNext;
  615. _onCompleted = onCompleted;
  616. _observer1 = observer1;
  617. _observer2 = observer2;
  618. _observer3 = observer3;
  619. _observer4 = observer4;
  620. _observer5 = observer5;
  621. _observer6 = observer6;
  622. _observer7 = observer7;
  623. _observer8 = observer8;
  624. _observer9 = observer9;
  625. _observer10 = observer10;
  626. _observer11 = observer11;
  627. _observer12 = observer12;
  628. _observer13 = observer13;
  629. AddJoinObserver(observer1);
  630. AddJoinObserver(observer2);
  631. AddJoinObserver(observer3);
  632. AddJoinObserver(observer4);
  633. AddJoinObserver(observer5);
  634. AddJoinObserver(observer6);
  635. AddJoinObserver(observer7);
  636. AddJoinObserver(observer8);
  637. AddJoinObserver(observer9);
  638. AddJoinObserver(observer10);
  639. AddJoinObserver(observer11);
  640. AddJoinObserver(observer12);
  641. AddJoinObserver(observer13);
  642. }
  643. internal override Task Match()
  644. {
  645. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0 && _observer10.Queue.Count > 0 && _observer11.Queue.Count > 0 && _observer12.Queue.Count > 0 && _observer13.Queue.Count > 0)
  646. {
  647. var notification1 = _observer1.Queue.Peek();
  648. var notification2 = _observer2.Queue.Peek();
  649. var notification3 = _observer3.Queue.Peek();
  650. var notification4 = _observer4.Queue.Peek();
  651. var notification5 = _observer5.Queue.Peek();
  652. var notification6 = _observer6.Queue.Peek();
  653. var notification7 = _observer7.Queue.Peek();
  654. var notification8 = _observer8.Queue.Peek();
  655. var notification9 = _observer9.Queue.Peek();
  656. var notification10 = _observer10.Queue.Peek();
  657. var notification11 = _observer11.Queue.Peek();
  658. var notification12 = _observer12.Queue.Peek();
  659. var notification13 = _observer13.Queue.Peek();
  660. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted || notification10.Kind == NotificationKind.OnCompleted || notification11.Kind == NotificationKind.OnCompleted || notification12.Kind == NotificationKind.OnCompleted || notification13.Kind == NotificationKind.OnCompleted)
  661. {
  662. return _onCompleted();
  663. }
  664. Dequeue();
  665. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value, notification10.Value, notification11.Value, notification12.Value, notification13.Value);
  666. }
  667. return Task.CompletedTask;
  668. }
  669. }
  670. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14> : ActiveAsyncPlan
  671. {
  672. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, Task> _onNext;
  673. private readonly Func<Task> _onCompleted;
  674. private readonly AsyncJoinObserver<TSource1> _observer1;
  675. private readonly AsyncJoinObserver<TSource2> _observer2;
  676. private readonly AsyncJoinObserver<TSource3> _observer3;
  677. private readonly AsyncJoinObserver<TSource4> _observer4;
  678. private readonly AsyncJoinObserver<TSource5> _observer5;
  679. private readonly AsyncJoinObserver<TSource6> _observer6;
  680. private readonly AsyncJoinObserver<TSource7> _observer7;
  681. private readonly AsyncJoinObserver<TSource8> _observer8;
  682. private readonly AsyncJoinObserver<TSource9> _observer9;
  683. private readonly AsyncJoinObserver<TSource10> _observer10;
  684. private readonly AsyncJoinObserver<TSource11> _observer11;
  685. private readonly AsyncJoinObserver<TSource12> _observer12;
  686. private readonly AsyncJoinObserver<TSource13> _observer13;
  687. private readonly AsyncJoinObserver<TSource14> _observer14;
  688. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, AsyncJoinObserver<TSource10> observer10, AsyncJoinObserver<TSource11> observer11, AsyncJoinObserver<TSource12> observer12, AsyncJoinObserver<TSource13> observer13, AsyncJoinObserver<TSource14> observer14, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, Task> onNext, Func<Task> onCompleted)
  689. {
  690. _onNext = onNext;
  691. _onCompleted = onCompleted;
  692. _observer1 = observer1;
  693. _observer2 = observer2;
  694. _observer3 = observer3;
  695. _observer4 = observer4;
  696. _observer5 = observer5;
  697. _observer6 = observer6;
  698. _observer7 = observer7;
  699. _observer8 = observer8;
  700. _observer9 = observer9;
  701. _observer10 = observer10;
  702. _observer11 = observer11;
  703. _observer12 = observer12;
  704. _observer13 = observer13;
  705. _observer14 = observer14;
  706. AddJoinObserver(observer1);
  707. AddJoinObserver(observer2);
  708. AddJoinObserver(observer3);
  709. AddJoinObserver(observer4);
  710. AddJoinObserver(observer5);
  711. AddJoinObserver(observer6);
  712. AddJoinObserver(observer7);
  713. AddJoinObserver(observer8);
  714. AddJoinObserver(observer9);
  715. AddJoinObserver(observer10);
  716. AddJoinObserver(observer11);
  717. AddJoinObserver(observer12);
  718. AddJoinObserver(observer13);
  719. AddJoinObserver(observer14);
  720. }
  721. internal override Task Match()
  722. {
  723. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0 && _observer10.Queue.Count > 0 && _observer11.Queue.Count > 0 && _observer12.Queue.Count > 0 && _observer13.Queue.Count > 0 && _observer14.Queue.Count > 0)
  724. {
  725. var notification1 = _observer1.Queue.Peek();
  726. var notification2 = _observer2.Queue.Peek();
  727. var notification3 = _observer3.Queue.Peek();
  728. var notification4 = _observer4.Queue.Peek();
  729. var notification5 = _observer5.Queue.Peek();
  730. var notification6 = _observer6.Queue.Peek();
  731. var notification7 = _observer7.Queue.Peek();
  732. var notification8 = _observer8.Queue.Peek();
  733. var notification9 = _observer9.Queue.Peek();
  734. var notification10 = _observer10.Queue.Peek();
  735. var notification11 = _observer11.Queue.Peek();
  736. var notification12 = _observer12.Queue.Peek();
  737. var notification13 = _observer13.Queue.Peek();
  738. var notification14 = _observer14.Queue.Peek();
  739. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted || notification10.Kind == NotificationKind.OnCompleted || notification11.Kind == NotificationKind.OnCompleted || notification12.Kind == NotificationKind.OnCompleted || notification13.Kind == NotificationKind.OnCompleted || notification14.Kind == NotificationKind.OnCompleted)
  740. {
  741. return _onCompleted();
  742. }
  743. Dequeue();
  744. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value, notification10.Value, notification11.Value, notification12.Value, notification13.Value, notification14.Value);
  745. }
  746. return Task.CompletedTask;
  747. }
  748. }
  749. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15> : ActiveAsyncPlan
  750. {
  751. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, Task> _onNext;
  752. private readonly Func<Task> _onCompleted;
  753. private readonly AsyncJoinObserver<TSource1> _observer1;
  754. private readonly AsyncJoinObserver<TSource2> _observer2;
  755. private readonly AsyncJoinObserver<TSource3> _observer3;
  756. private readonly AsyncJoinObserver<TSource4> _observer4;
  757. private readonly AsyncJoinObserver<TSource5> _observer5;
  758. private readonly AsyncJoinObserver<TSource6> _observer6;
  759. private readonly AsyncJoinObserver<TSource7> _observer7;
  760. private readonly AsyncJoinObserver<TSource8> _observer8;
  761. private readonly AsyncJoinObserver<TSource9> _observer9;
  762. private readonly AsyncJoinObserver<TSource10> _observer10;
  763. private readonly AsyncJoinObserver<TSource11> _observer11;
  764. private readonly AsyncJoinObserver<TSource12> _observer12;
  765. private readonly AsyncJoinObserver<TSource13> _observer13;
  766. private readonly AsyncJoinObserver<TSource14> _observer14;
  767. private readonly AsyncJoinObserver<TSource15> _observer15;
  768. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, AsyncJoinObserver<TSource10> observer10, AsyncJoinObserver<TSource11> observer11, AsyncJoinObserver<TSource12> observer12, AsyncJoinObserver<TSource13> observer13, AsyncJoinObserver<TSource14> observer14, AsyncJoinObserver<TSource15> observer15, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, Task> onNext, Func<Task> onCompleted)
  769. {
  770. _onNext = onNext;
  771. _onCompleted = onCompleted;
  772. _observer1 = observer1;
  773. _observer2 = observer2;
  774. _observer3 = observer3;
  775. _observer4 = observer4;
  776. _observer5 = observer5;
  777. _observer6 = observer6;
  778. _observer7 = observer7;
  779. _observer8 = observer8;
  780. _observer9 = observer9;
  781. _observer10 = observer10;
  782. _observer11 = observer11;
  783. _observer12 = observer12;
  784. _observer13 = observer13;
  785. _observer14 = observer14;
  786. _observer15 = observer15;
  787. AddJoinObserver(observer1);
  788. AddJoinObserver(observer2);
  789. AddJoinObserver(observer3);
  790. AddJoinObserver(observer4);
  791. AddJoinObserver(observer5);
  792. AddJoinObserver(observer6);
  793. AddJoinObserver(observer7);
  794. AddJoinObserver(observer8);
  795. AddJoinObserver(observer9);
  796. AddJoinObserver(observer10);
  797. AddJoinObserver(observer11);
  798. AddJoinObserver(observer12);
  799. AddJoinObserver(observer13);
  800. AddJoinObserver(observer14);
  801. AddJoinObserver(observer15);
  802. }
  803. internal override Task Match()
  804. {
  805. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0 && _observer10.Queue.Count > 0 && _observer11.Queue.Count > 0 && _observer12.Queue.Count > 0 && _observer13.Queue.Count > 0 && _observer14.Queue.Count > 0 && _observer15.Queue.Count > 0)
  806. {
  807. var notification1 = _observer1.Queue.Peek();
  808. var notification2 = _observer2.Queue.Peek();
  809. var notification3 = _observer3.Queue.Peek();
  810. var notification4 = _observer4.Queue.Peek();
  811. var notification5 = _observer5.Queue.Peek();
  812. var notification6 = _observer6.Queue.Peek();
  813. var notification7 = _observer7.Queue.Peek();
  814. var notification8 = _observer8.Queue.Peek();
  815. var notification9 = _observer9.Queue.Peek();
  816. var notification10 = _observer10.Queue.Peek();
  817. var notification11 = _observer11.Queue.Peek();
  818. var notification12 = _observer12.Queue.Peek();
  819. var notification13 = _observer13.Queue.Peek();
  820. var notification14 = _observer14.Queue.Peek();
  821. var notification15 = _observer15.Queue.Peek();
  822. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted || notification10.Kind == NotificationKind.OnCompleted || notification11.Kind == NotificationKind.OnCompleted || notification12.Kind == NotificationKind.OnCompleted || notification13.Kind == NotificationKind.OnCompleted || notification14.Kind == NotificationKind.OnCompleted || notification15.Kind == NotificationKind.OnCompleted)
  823. {
  824. return _onCompleted();
  825. }
  826. Dequeue();
  827. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value, notification10.Value, notification11.Value, notification12.Value, notification13.Value, notification14.Value, notification15.Value);
  828. }
  829. return Task.CompletedTask;
  830. }
  831. }
  832. internal sealed class ActiveAsyncPlan<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16> : ActiveAsyncPlan
  833. {
  834. private readonly Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, Task> _onNext;
  835. private readonly Func<Task> _onCompleted;
  836. private readonly AsyncJoinObserver<TSource1> _observer1;
  837. private readonly AsyncJoinObserver<TSource2> _observer2;
  838. private readonly AsyncJoinObserver<TSource3> _observer3;
  839. private readonly AsyncJoinObserver<TSource4> _observer4;
  840. private readonly AsyncJoinObserver<TSource5> _observer5;
  841. private readonly AsyncJoinObserver<TSource6> _observer6;
  842. private readonly AsyncJoinObserver<TSource7> _observer7;
  843. private readonly AsyncJoinObserver<TSource8> _observer8;
  844. private readonly AsyncJoinObserver<TSource9> _observer9;
  845. private readonly AsyncJoinObserver<TSource10> _observer10;
  846. private readonly AsyncJoinObserver<TSource11> _observer11;
  847. private readonly AsyncJoinObserver<TSource12> _observer12;
  848. private readonly AsyncJoinObserver<TSource13> _observer13;
  849. private readonly AsyncJoinObserver<TSource14> _observer14;
  850. private readonly AsyncJoinObserver<TSource15> _observer15;
  851. private readonly AsyncJoinObserver<TSource16> _observer16;
  852. internal ActiveAsyncPlan(AsyncJoinObserver<TSource1> observer1, AsyncJoinObserver<TSource2> observer2, AsyncJoinObserver<TSource3> observer3, AsyncJoinObserver<TSource4> observer4, AsyncJoinObserver<TSource5> observer5, AsyncJoinObserver<TSource6> observer6, AsyncJoinObserver<TSource7> observer7, AsyncJoinObserver<TSource8> observer8, AsyncJoinObserver<TSource9> observer9, AsyncJoinObserver<TSource10> observer10, AsyncJoinObserver<TSource11> observer11, AsyncJoinObserver<TSource12> observer12, AsyncJoinObserver<TSource13> observer13, AsyncJoinObserver<TSource14> observer14, AsyncJoinObserver<TSource15> observer15, AsyncJoinObserver<TSource16> observer16, Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, Task> onNext, Func<Task> onCompleted)
  853. {
  854. _onNext = onNext;
  855. _onCompleted = onCompleted;
  856. _observer1 = observer1;
  857. _observer2 = observer2;
  858. _observer3 = observer3;
  859. _observer4 = observer4;
  860. _observer5 = observer5;
  861. _observer6 = observer6;
  862. _observer7 = observer7;
  863. _observer8 = observer8;
  864. _observer9 = observer9;
  865. _observer10 = observer10;
  866. _observer11 = observer11;
  867. _observer12 = observer12;
  868. _observer13 = observer13;
  869. _observer14 = observer14;
  870. _observer15 = observer15;
  871. _observer16 = observer16;
  872. AddJoinObserver(observer1);
  873. AddJoinObserver(observer2);
  874. AddJoinObserver(observer3);
  875. AddJoinObserver(observer4);
  876. AddJoinObserver(observer5);
  877. AddJoinObserver(observer6);
  878. AddJoinObserver(observer7);
  879. AddJoinObserver(observer8);
  880. AddJoinObserver(observer9);
  881. AddJoinObserver(observer10);
  882. AddJoinObserver(observer11);
  883. AddJoinObserver(observer12);
  884. AddJoinObserver(observer13);
  885. AddJoinObserver(observer14);
  886. AddJoinObserver(observer15);
  887. AddJoinObserver(observer16);
  888. }
  889. internal override Task Match()
  890. {
  891. if (_observer1.Queue.Count > 0 && _observer2.Queue.Count > 0 && _observer3.Queue.Count > 0 && _observer4.Queue.Count > 0 && _observer5.Queue.Count > 0 && _observer6.Queue.Count > 0 && _observer7.Queue.Count > 0 && _observer8.Queue.Count > 0 && _observer9.Queue.Count > 0 && _observer10.Queue.Count > 0 && _observer11.Queue.Count > 0 && _observer12.Queue.Count > 0 && _observer13.Queue.Count > 0 && _observer14.Queue.Count > 0 && _observer15.Queue.Count > 0 && _observer16.Queue.Count > 0)
  892. {
  893. var notification1 = _observer1.Queue.Peek();
  894. var notification2 = _observer2.Queue.Peek();
  895. var notification3 = _observer3.Queue.Peek();
  896. var notification4 = _observer4.Queue.Peek();
  897. var notification5 = _observer5.Queue.Peek();
  898. var notification6 = _observer6.Queue.Peek();
  899. var notification7 = _observer7.Queue.Peek();
  900. var notification8 = _observer8.Queue.Peek();
  901. var notification9 = _observer9.Queue.Peek();
  902. var notification10 = _observer10.Queue.Peek();
  903. var notification11 = _observer11.Queue.Peek();
  904. var notification12 = _observer12.Queue.Peek();
  905. var notification13 = _observer13.Queue.Peek();
  906. var notification14 = _observer14.Queue.Peek();
  907. var notification15 = _observer15.Queue.Peek();
  908. var notification16 = _observer16.Queue.Peek();
  909. if (notification1.Kind == NotificationKind.OnCompleted || notification2.Kind == NotificationKind.OnCompleted || notification3.Kind == NotificationKind.OnCompleted || notification4.Kind == NotificationKind.OnCompleted || notification5.Kind == NotificationKind.OnCompleted || notification6.Kind == NotificationKind.OnCompleted || notification7.Kind == NotificationKind.OnCompleted || notification8.Kind == NotificationKind.OnCompleted || notification9.Kind == NotificationKind.OnCompleted || notification10.Kind == NotificationKind.OnCompleted || notification11.Kind == NotificationKind.OnCompleted || notification12.Kind == NotificationKind.OnCompleted || notification13.Kind == NotificationKind.OnCompleted || notification14.Kind == NotificationKind.OnCompleted || notification15.Kind == NotificationKind.OnCompleted || notification16.Kind == NotificationKind.OnCompleted)
  910. {
  911. return _onCompleted();
  912. }
  913. Dequeue();
  914. return _onNext(notification1.Value, notification2.Value, notification3.Value, notification4.Value, notification5.Value, notification6.Value, notification7.Value, notification8.Value, notification9.Value, notification10.Value, notification11.Value, notification12.Value, notification13.Value, notification14.Value, notification15.Value, notification16.Value);
  915. }
  916. return Task.CompletedTask;
  917. }
  918. }
  919. }