public static IQbservable <TResult> ManySelect <TSource, TResult>(this IQbservable <TSource> source, Expression <Func <IObservable <TSource>, TResult> > selector, IScheduler scheduler) { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (selector == null) { throw new ArgumentNullException(nameof(selector)); } if (scheduler == null) { throw new ArgumentNullException(nameof(scheduler)); } return(source.Provider.CreateQuery <TResult>( Expression.Call( null, #if CRIPPLED_REFLECTION InfoOf(() => QbservableEx.ManySelect <TSource, TResult>(default(IQbservable <TSource>), default(Expression <Func <IObservable <TSource>, TResult> >), default(IScheduler))), #else ((MethodInfo)MethodInfo.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TResult)), #endif source.Expression, selector, Expression.Constant(scheduler, typeof(IScheduler)) ) )); }
public static IQbservable <TResult> ForkJoin <TSource1, TSource2, TResult>(this IQbservable <TSource1> first, IObservable <TSource2> second, Expression <Func <TSource1, TSource2, TResult> > resultSelector) { if (first == null) { throw new ArgumentNullException(nameof(first)); } if (second == null) { throw new ArgumentNullException(nameof(second)); } if (resultSelector == null) { throw new ArgumentNullException(nameof(resultSelector)); } return(first.Provider.CreateQuery <TResult>( Expression.Call( null, #if CRIPPLED_REFLECTION InfoOf(() => QbservableEx.ForkJoin <TSource1, TSource2, TResult>(default(IQbservable <TSource1>), default(IObservable <TSource2>), default(Expression <Func <TSource1, TSource2, TResult> >))), #else ((MethodInfo)MethodInfo.GetCurrentMethod()).MakeGenericMethod(typeof(TSource1), typeof(TSource2), typeof(TResult)), #endif first.Expression, GetSourceExpression(second), resultSelector ) )); }
public static IQbservable <TResult> Create <TResult>(this IQbservableProvider provider, Expression <Func <IObserver <TResult>, IEnumerable <IObservable <object> > > > iteratorMethod) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (iteratorMethod == null) { throw new ArgumentNullException(nameof(iteratorMethod)); } return(provider.CreateQuery <TResult>( Expression.Call( null, #if CRIPPLED_REFLECTION InfoOf(() => QbservableEx.Create <TResult>(default(IQbservableProvider), default(Expression <Func <IObserver <TResult>, IEnumerable <IObservable <object> > > >))), #else ((MethodInfo)MethodInfo.GetCurrentMethod()).MakeGenericMethod(typeof(TResult)), #endif Expression.Constant(provider, typeof(IQbservableProvider)), iteratorMethod ) )); }
public static IQbservable <TSource[]> ForkJoin <TSource>(this IQbservableProvider provider, IEnumerable <IObservable <TSource> > sources) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (sources == null) { throw new ArgumentNullException(nameof(sources)); } return(provider.CreateQuery <TSource[]>( Expression.Call( null, #if CRIPPLED_REFLECTION InfoOf(() => QbservableEx.ForkJoin <TSource>(default(IQbservableProvider), default(IEnumerable <IObservable <TSource> >))), #else ((MethodInfo)MethodInfo.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)), #endif Expression.Constant(provider, typeof(IQbservableProvider)), GetSourceExpression(sources) ) )); }
public static IQbservable <TSource> Expand <TSource>(this IQbservable <TSource> source, Expression <Func <TSource, IObservable <TSource> > > selector) { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (selector == null) { throw new ArgumentNullException(nameof(selector)); } return(source.Provider.CreateQuery <TSource>( Expression.Call( null, #if CRIPPLED_REFLECTION InfoOf(() => QbservableEx.Expand <TSource>(default(IQbservable <TSource>), default(Expression <Func <TSource, IObservable <TSource> > >))), #else ((MethodInfo)MethodInfo.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)), #endif source.Expression, selector ) )); }