package com.example.util.rx; import rx.Scheduler; public class RxSchedulers { /** * A {@link Scheduler} intended for IO-bound work. The implementation is backed by an {@link java.util.concurrent.Executor} thread-pool * that will grow as needed. This can be used for asynchronously performing blocking IO. */ private final Scheduler ioScheduler; /** * A {@link Scheduler} intended for computational work. This can be used for event-loops, processing callbacks and other computational * work. Unhandled errors will be delivered to the scheduler Thread's {@link Thread.UncaughtExceptionHandler}. **/ private final Scheduler computationScheduler; /** * A {@link Scheduler} that queues work on the current thread to be executed after the current work completes. */ private final Scheduler trampolineScheduler; /** * A {@link Scheduler} which executes actions on the Android UI thread. */ private final Scheduler androidMainThreadScheduler; public RxSchedulers(Scheduler ioScheduler, Scheduler computationScheduler, Scheduler trampolineScheduler, Scheduler androidMainThreadScheduler) { this.ioScheduler = ioScheduler; this.computationScheduler = computationScheduler; this.trampolineScheduler = trampolineScheduler; this.androidMainThreadScheduler = androidMainThreadScheduler; } public Scheduler getIoScheduler() { return ioScheduler; } public Scheduler getComputationScheduler() { return computationScheduler; } public Scheduler getTrampolineScheduler() { return trampolineScheduler; } public Scheduler getAndroidMainThreadScheduler() { return androidMainThreadScheduler; } }