1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using UniRx.Operators;
- namespace UniRx
- {
- public static partial class Observable
- {
- public static IObservable<T> Synchronize<T>(this IObservable<T> source)
- {
- return new SynchronizeObservable<T>(source, new object());
- }
- public static IObservable<T> Synchronize<T>(this IObservable<T> source, object gate)
- {
- return new SynchronizeObservable<T>(source, gate);
- }
- public static IObservable<T> ObserveOn<T>(this IObservable<T> source, IScheduler scheduler)
- {
- return new ObserveOnObservable<T>(source, scheduler);
- }
- public static IObservable<T> SubscribeOn<T>(this IObservable<T> source, IScheduler scheduler)
- {
- return new SubscribeOnObservable<T>(source, scheduler);
- }
- public static IObservable<T> DelaySubscription<T>(this IObservable<T> source, TimeSpan dueTime)
- {
- return new DelaySubscriptionObservable<T>(source, dueTime, Scheduler.DefaultSchedulers.TimeBasedOperations);
- }
- public static IObservable<T> DelaySubscription<T>(this IObservable<T> source, TimeSpan dueTime, IScheduler scheduler)
- {
- return new DelaySubscriptionObservable<T>(source, dueTime, scheduler);
- }
- public static IObservable<T> DelaySubscription<T>(this IObservable<T> source, DateTimeOffset dueTime)
- {
- return new DelaySubscriptionObservable<T>(source, dueTime, Scheduler.DefaultSchedulers.TimeBasedOperations);
- }
- public static IObservable<T> DelaySubscription<T>(this IObservable<T> source, DateTimeOffset dueTime, IScheduler scheduler)
- {
- return new DelaySubscriptionObservable<T>(source, dueTime, scheduler);
- }
- public static IObservable<T> Amb<T>(params IObservable<T>[] sources)
- {
- return Amb((IEnumerable<IObservable<T>>)sources);
- }
- public static IObservable<T> Amb<T>(IEnumerable<IObservable<T>> sources)
- {
- var result = Observable.Never<T>();
- foreach (var item in sources)
- {
- var second = item;
- result = result.Amb(second);
- }
- return result;
- }
- public static IObservable<T> Amb<T>(this IObservable<T> source, IObservable<T> second)
- {
- return new AmbObservable<T>(source, second);
- }
- }
- }
|