0001    //
0002    //  DelaySubscription.swift
0003    //  RxSwift
0004    //
0005    //  Created by Krunoslav Zaher on 6/14/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    class DelaySubscriptionSink
DelaySubscription.swift:45
        let sink = DelaySubscriptionSink(parent: self, observer: observer)
<ElementType
DelaySubscription.swift:14
    typealias Parent = DelaySubscription<ElementType>
, O
DelaySubscription.swift:12
    : Sink<O>
DelaySubscription.swift:15
    typealias E = O.E
DelaySubscription.swift:19
    init(parent: Parent, observer: O) {
: ObserverType where O.E == ElementType> 0012 : Sink<O> 0013 , ObserverType { 0014 typealias Parent
DelaySubscription.swift:17
    private let _parent: Parent
DelaySubscription.swift:19
    init(parent: Parent, observer: O) {
= DelaySubscription<ElementType> 0015 typealias E
DelaySubscription.swift:24
    func on(event: Event<E>) {
= O.E 0016 0017 private let _parent
DelaySubscription.swift:20
        _parent = parent
: Parent 0018 0019 init
DelaySubscription.swift:45
        let sink = DelaySubscriptionSink(parent: self, observer: observer)
(parent: Parent, observer: O) { 0020 _parent = parent 0021 super.init(observer: observer) 0022 } 0023 0024 func on(event: Event<E>) { 0025 forwardOn(event) 0026 if event.isStopEvent { 0027 dispose() 0028 } 0029 } 0030 0031 } 0032 0033 class DelaySubscription
DelaySubscription.swift:14
    typealias Parent = DelaySubscription<ElementType>
Observable+Time.swift:192
        return DelaySubscription(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler)
<Element
DelaySubscription.swift:33
class DelaySubscription<Element>: Producer<Element> {
DelaySubscription.swift:34
    private let _source: Observable<Element>
DelaySubscription.swift:38
    init(source: Observable<Element>, dueTime: RxTimeInterval, scheduler: SchedulerType) {
DelaySubscription.swift:44
    override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable {
>: Producer<Element> { 0034 private let _source
DelaySubscription.swift:39
        _source = source
DelaySubscription.swift:47
            return self._source.subscribe(sink)
: Observable<Element> 0035 private let _dueTime
DelaySubscription.swift:40
        _dueTime = dueTime
DelaySubscription.swift:46
        sink.disposable = _scheduler.scheduleRelative((), dueTime: _dueTime) { _ in
: RxTimeInterval 0036 private let _scheduler
DelaySubscription.swift:41
        _scheduler = scheduler
DelaySubscription.swift:46
        sink.disposable = _scheduler.scheduleRelative((), dueTime: _dueTime) { _ in
: SchedulerType 0037 0038 init
Observable+Time.swift:192
        return DelaySubscription(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler)
(source: Observable<Element>, dueTime: RxTimeInterval, scheduler: SchedulerType) { 0039 _source = source 0040 _dueTime = dueTime 0041 _scheduler = scheduler 0042 } 0043 0044 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable { 0045 let sink = DelaySubscriptionSink(parent: self, observer: observer) 0046 sink.disposable = _scheduler.scheduleRelative((), dueTime: _dueTime) { _ in 0047 return self._source.subscribe(sink) 0048 } 0049 0050 return sink 0051 } 0052 }