public static IObservable <ClientTermination> CreateService <TSource, TResult>( IQactiveProvider provider, Func <IObservable <TSource>, IObservable <TResult> > service) { Contract.Requires(provider != null); Contract.Requires(service != null); Contract.Ensures(Contract.Result <IObservable <ClientTermination> >() != null); return(CreateService <TSource, TResult>(provider, request => service(request).AsQbservable())); }
public static IObservable <ClientTermination> CreateService <TSource, TResult>( IQactiveProvider provider, Func <IObservable <TSource>, IQbservable <TResult> > service) { Contract.Requires(provider != null); Contract.Requires(service != null); Contract.Ensures(Contract.Result <IObservable <ClientTermination> >() != null); return(CreateService(provider, QbservableServiceOptions.Default, service)); }
public static IObservable <ClientTermination> CreateService <TSource, TResult>( IQactiveProvider provider, QbservableServiceOptions options, Func <IObservable <TSource>, IQbservable <TResult> > service) { Contract.Requires(provider != null); Contract.Requires(options != null); Contract.Requires(service != null); Contract.Ensures(Contract.Result <IObservable <ClientTermination> >() != null); return(provider.Listen( options, protocol => new ServerQbservableProvider <TResult>( protocol, options, argument => argument == null && typeof(TSource).GetIsValueType() ? service(Observable.Return(default(TSource))) : service(Observable.Return((TSource)argument))))); }
public static IObservable <ClientTermination> ServeQbservable <TSource>(this IObservable <TSource> source, IQactiveProvider provider) { Contract.Requires(source != null); Contract.Requires(provider != null); Contract.Ensures(Contract.Result <IObservable <ClientTermination> >() != null); return(QbservableServer.CreateService <object, TSource>(provider, _ => source)); }