using System; using System.Collections.Generic; using UniRx.Operators; namespace UniRx { // Timer, Interval, etc... public static partial class Observable { public static IObservable Interval(TimeSpan period) { return new TimerObservable(period, period, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Interval(TimeSpan period, IScheduler scheduler) { return new TimerObservable(period, period, scheduler); } public static IObservable Timer(TimeSpan dueTime) { return new TimerObservable(dueTime, null, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Timer(DateTimeOffset dueTime) { return new TimerObservable(dueTime, null, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Timer(TimeSpan dueTime, TimeSpan period) { return new TimerObservable(dueTime, period, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Timer(DateTimeOffset dueTime, TimeSpan period) { return new TimerObservable(dueTime, period, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Timer(TimeSpan dueTime, IScheduler scheduler) { return new TimerObservable(dueTime, null, scheduler); } public static IObservable Timer(DateTimeOffset dueTime, IScheduler scheduler) { return new TimerObservable(dueTime, null, scheduler); } public static IObservable Timer(TimeSpan dueTime, TimeSpan period, IScheduler scheduler) { return new TimerObservable(dueTime, period, scheduler); } public static IObservable Timer(DateTimeOffset dueTime, TimeSpan period, IScheduler scheduler) { return new TimerObservable(dueTime, period, scheduler); } public static IObservable> Timestamp(this IObservable source) { return Timestamp(source, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable> Timestamp(this IObservable source, IScheduler scheduler) { return new TimestampObservable(source, scheduler); } public static IObservable> TimeInterval(this IObservable source) { return TimeInterval(source, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable> TimeInterval(this IObservable source, IScheduler scheduler) { return new UniRx.Operators.TimeIntervalObservable(source, scheduler); } public static IObservable Delay(this IObservable source, TimeSpan dueTime) { return source.Delay(dueTime, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Delay(this IObservable source, TimeSpan dueTime, IScheduler scheduler) { return new DelayObservable(source, dueTime, scheduler); } public static IObservable Sample(this IObservable source, TimeSpan interval) { return source.Sample(interval, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Sample(this IObservable source, TimeSpan interval, IScheduler scheduler) { return new SampleObservable(source, interval, scheduler); } public static IObservable Throttle(this IObservable source, TimeSpan dueTime) { return source.Throttle(dueTime, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Throttle(this IObservable source, TimeSpan dueTime, IScheduler scheduler) { return new ThrottleObservable(source, dueTime, scheduler); } public static IObservable ThrottleFirst(this IObservable source, TimeSpan dueTime) { return source.ThrottleFirst(dueTime, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable ThrottleFirst(this IObservable source, TimeSpan dueTime, IScheduler scheduler) { return new ThrottleFirstObservable(source, dueTime, scheduler); } public static IObservable Timeout(this IObservable source, TimeSpan dueTime) { return source.Timeout(dueTime, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Timeout(this IObservable source, TimeSpan dueTime, IScheduler scheduler) { return new TimeoutObservable(source, dueTime, scheduler); } public static IObservable Timeout(this IObservable source, DateTimeOffset dueTime) { return source.Timeout(dueTime, Scheduler.DefaultSchedulers.TimeBasedOperations); } public static IObservable Timeout(this IObservable source, DateTimeOffset dueTime, IScheduler scheduler) { return new TimeoutObservable(source, dueTime, scheduler); } } }