0001 // 0002 // SchedulerType.swift 0003 // Rx 0004 // 0005 // Created by Krunoslav Zaher on 2/8/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 /** 0012 Type that represents time interval in the context of RxSwift. 0013 */ 0014 public typealias RxTimeInterval= NSTimeInterval 0015 0016 /** 0017 Type that represents absolute time in the context of RxSwift. 0018 */ 0019 public typealias RxTime
Buffer.swift:13 private let _timeSpan: RxTimeIntervalBuffer.swift:18 init(source: Observable<Element>, timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) {DelaySubscription.swift:35 private let _dueTime: RxTimeIntervalDelaySubscription.swift:38 init(source: Observable<Element>, dueTime: RxTimeInterval, scheduler: SchedulerType) {HistoricalSchedulerTimeConverter.swift:25 public typealias VirtualTimeIntervalUnit = RxTimeIntervalHistoricalSchedulerTimeConverter.swift:47 public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval {HistoricalSchedulerTimeConverter.swift:55 public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit {Observable+Time.swift:26 public func throttle(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:43 public func debounce(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:83 public static func interval(period: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:106 public static func timer(dueTime: RxTimeInterval, period: RxTimeInterval? = nil, scheduler: SchedulerType)Observable+Time.swift:106 public static func timer(dueTime: RxTimeInterval, period: RxTimeInterval? = nil, scheduler: SchedulerType)Observable+Time.swift:130 public func take(duration: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:150 public func skip(duration: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:190 public func delaySubscription(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:213 public func buffer(timeSpan timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType)Observable+Time.swift:234 public func window(timeSpan timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType)Observable+Time.swift:254 public func timeout(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:270 public func timeout<O: ObservableConvertibleType where E == O.E>(dueTime: RxTimeInterval, other: O, scheduler: SchedulerType)RecursiveScheduler.swift:36 func schedule(state: State, dueTime: RxTimeInterval) {SchedulerServices+Emulation.swift:21 private let _startAfter: RxTimeIntervalSchedulerServices+Emulation.swift:22 private let _period: RxTimeIntervalSchedulerServices+Emulation.swift:28 init(scheduler: SchedulerType, startAfter: RxTimeInterval, period: RxTimeInterval, action: RecursiveAction, state: State) {SchedulerServices+Emulation.swift:28 init(scheduler: SchedulerType, startAfter: RxTimeInterval, period: RxTimeInterval, action: RecursiveAction, state: State) {SchedulerType.swift:41 func scheduleRelative<StateType>(state: StateType, dueTime: RxTimeInterval, action: (StateType) -> Disposable) -> DisposableSchedulerType.swift:52 func schedulePeriodic<StateType>(state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> DisposableSchedulerType.swift:52 func schedulePeriodic<StateType>(state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> DisposableSchedulerType.swift:65 public func schedulePeriodic<StateType>(state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> Disposable {SchedulerType.swift:65 public func schedulePeriodic<StateType>(state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> Disposable {SchedulerType.swift:71 func scheduleRecursive<State>(state: State, dueTime: RxTimeInterval, action: (state: State, scheduler: AnyRecursiveScheduler<State>) -> ()) -> Disposable {Skip.swift:114 let duration: RxTimeIntervalSkip.swift:117 init(source: Observable<Element>, duration: RxTimeInterval, scheduler: SchedulerType) {Take.swift:127 typealias TimeInterval = RxTimeIntervalThrottle.swift:89 private let _dueTime: RxTimeIntervalThrottle.swift:92 init(source: Observable<Element>, dueTime: RxTimeInterval, scheduler: SchedulerType) {Timeout.swift:104 private let _dueTime: RxTimeIntervalTimeout.swift:108 init(source: Observable<Element>, dueTime: RxTimeInterval, other: Observable<Element>, scheduler: SchedulerType) {Timer.swift:51 private let _dueTime: RxTimeIntervalTimer.swift:52 private let _period: RxTimeInterval?Timer.swift:54 init(dueTime: RxTimeInterval, period: RxTimeInterval?, scheduler: SchedulerType) {Timer.swift:54 init(dueTime: RxTimeInterval, period: RxTimeInterval?, scheduler: SchedulerType) {VirtualTimeConverterType.swift:47 func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeIntervalVirtualTimeConverterType.swift:55 func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnitVirtualTimeScheduler.swift:89 public func scheduleRelative<StateType>(state: StateType, dueTime: RxTimeInterval, action: StateType -> Disposable) -> Disposable {Window.swift:135 private let _timeSpan: RxTimeIntervalWindow.swift:140 init(source: Observable<Element>, timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) {= NSDate 0020 0021 /** 0022 Represents an object that schedules units of work. 0023 */ 0024 public protocol SchedulerType
HistoricalScheduler.swift:21 public init(initialClock: RxTime = NSDate(timeIntervalSince1970: 0)) {HistoricalSchedulerTimeConverter.swift:20 public typealias VirtualTimeUnit = RxTimeHistoricalSchedulerTimeConverter.swift:31 public func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime {HistoricalSchedulerTimeConverter.swift:39 public func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit {SchedulerType.swift:29 var now : RxTime {VirtualTimeConverterType.swift:31 func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTimeVirtualTimeConverterType.swift:39 func convertToVirtualTime(time: RxTime) -> VirtualTimeUnitVirtualTimeScheduler.swift:33 public var now: RxTime {: ImmediateSchedulerType { 0025 0026 /** 0027 - returns: Current time. 0028 */ 0029 var now : RxTime { 0030 get 0031 } 0032 0033 /** 0034 Schedules an action to be executed. 0035 0036 - parameter state: State passed to the action to be executed. 0037 - parameter dueTime: Relative time after which to execute the action. 0038 - parameter action: Action to be executed. 0039 - returns: The disposable object used to cancel the scheduled action (best effort). 0040 */ 0041 func scheduleRelative
Buffer.swift:15 private let _scheduler: SchedulerTypeBuffer.swift:18 init(source: Observable<Element>, timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) {ConcurrentDispatchQueueScheduler.swift:16 public class ConcurrentDispatchQueueScheduler: SchedulerType {ConcurrentMainScheduler.swift:17 public final class ConcurrentMainScheduler : SchedulerType {DelaySubscription.swift:36 private let _scheduler: SchedulerTypeDelaySubscription.swift:38 init(source: Observable<Element>, dueTime: RxTimeInterval, scheduler: SchedulerType) {Observable+Time.swift:26 public func throttle(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:43 public func debounce(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:83 public static func interval(period: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:106 public static func timer(dueTime: RxTimeInterval, period: RxTimeInterval? = nil, scheduler: SchedulerType)Observable+Time.swift:130 public func take(duration: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:150 public func skip(duration: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:190 public func delaySubscription(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:213 public func buffer(timeSpan timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType)Observable+Time.swift:234 public func window(timeSpan timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType)Observable+Time.swift:254 public func timeout(dueTime: RxTimeInterval, scheduler: SchedulerType)Observable+Time.swift:270 public func timeout<O: ObservableConvertibleType where E == O.E>(dueTime: RxTimeInterval, other: O, scheduler: SchedulerType)RecursiveScheduler.swift:22 private var _scheduler: SchedulerTypeRecursiveScheduler.swift:25 init(scheduler: SchedulerType, action: Action) {SchedulerServices+Emulation.swift:20 private let _scheduler: SchedulerTypeSchedulerServices+Emulation.swift:28 init(scheduler: SchedulerType, startAfter: RxTimeInterval, period: RxTimeInterval, action: RecursiveAction, state: State) {SchedulerType.swift:55 extension SchedulerType {SerialDispatchQueueScheduler.swift:28 public class SerialDispatchQueueScheduler: SchedulerType {Skip.swift:115 let scheduler: SchedulerTypeSkip.swift:117 init(source: Observable<Element>, duration: RxTimeInterval, scheduler: SchedulerType) {Take.swift:131 private let _scheduler: SchedulerTypeTake.swift:133 init(source: Observable<Element>, duration: TimeInterval, scheduler: SchedulerType) {Throttle.swift:90 private let _scheduler: SchedulerTypeThrottle.swift:92 init(source: Observable<Element>, dueTime: RxTimeInterval, scheduler: SchedulerType) {Timeout.swift:106 private let _scheduler: SchedulerTypeTimeout.swift:108 init(source: Observable<Element>, dueTime: RxTimeInterval, other: Observable<Element>, scheduler: SchedulerType) {Timer.swift:50 private let _scheduler: SchedulerTypeTimer.swift:54 init(dueTime: RxTimeInterval, period: RxTimeInterval?, scheduler: SchedulerType) {VirtualTimeScheduler.swift:15 : SchedulerTypeWindow.swift:137 private let _scheduler: SchedulerTypeWindow.swift:140 init(source: Observable<Element>, timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) {<StateType>(state: StateType, dueTime: RxTimeInterval, action: (StateType) -> Disposable) -> Disposable 0042 0043 /** 0044 Schedules a periodic piece of work. 0045 0046 - parameter state: State passed to the action to be executed. 0047 - parameter startAfter: Period after which initial work should be run. 0048 - parameter period: Period for running the work periodically. 0049 - parameter action: Action to be executed. 0050 - returns: The disposable object used to cancel the scheduled action (best effort). 0051 */ 0052 func schedulePeriodic
Buffer.swift:107 nextTimer.disposable = _parent._scheduler.scheduleRelative(windowID, dueTime: _parent._timeSpan) { previousWindowID inDelaySubscription.swift:46 sink.disposable = _scheduler.scheduleRelative((), dueTime: _dueTime) { _ inRecursiveScheduler.swift:42 let d = _scheduler.scheduleRelative(state, dueTime: dueTime) { (state) -> Disposable inSkip.swift:101 let disposeTimer = parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) {Take.swift:115 let disposeTimer = _parent._scheduler.scheduleRelative((), dueTime: _parent._duration) {Throttle.swift:58 d.disposable = scheduler.scheduleRelative(currentId, dueTime: dueTime, action: self.propagate)Timeout.swift:82 nextTimer.disposable = _parent._scheduler.scheduleRelative(_id, dueTime: _parent._dueTime) { state inTimer.swift:40 return _parent._scheduler.scheduleRelative((), dueTime: _parent._dueTime) { (_) -> Disposable inWindow.swift:111 nextTimer.disposable = _parent._scheduler.scheduleRelative(windowId, dueTime: _parent._timeSpan) { previousWindowId in<StateType>(state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> Disposable 0053 } 0054 0055 extension SchedulerType { 0056 0057 /** 0058 Periodic task will be emulated using recursive scheduling. 0059 0060 - parameter state: Initial state passed to the action upon the first iteration. 0061 - parameter startAfter: Period after which initial work should be run. 0062 - parameter period: Period for running the work periodically. 0063 - returns: The disposable object used to cancel the scheduled recurring action (best effort). 0064 */ 0065 public func schedulePeriodic<StateType>(state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> Disposable { 0066 let schedule = SchedulePeriodicRecursive(scheduler: self, startAfter: startAfter, period: period, action: action, state: state) 0067 0068 return schedule.start() 0069 } 0070 0071 func scheduleRecursive
Timer.swift:22 return _parent._scheduler.schedulePeriodic(0 as O.E, startAfter: _parent._dueTime, period: _parent._period!) { state in<State>(state: State, dueTime: RxTimeInterval, action: (state: State, scheduler: AnyRecursiveScheduler<State>) -> ()) -> Disposable { 0072 let scheduler = AnyRecursiveScheduler(scheduler: self, action: action) 0073 0074 scheduler.schedule(state, dueTime: dueTime) 0075 0076 return AnonymousDisposable { 0077 scheduler.dispose() 0078 } 0079 } 0080 }
SchedulerServices+Emulation.swift:37 return _scheduler.scheduleRecursive(SchedulePeriodicRecursiveCommand.Tick, dueTime: _startAfter, action: self.tick)