0001    //
0002    //  SubscribeOn.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 SubscribeOnSink
SubscribeOn.swift:56
        let sink = SubscribeOnSink(parent: self, observer: observer)
<Ob
SubscribeOn.swift:13
    typealias Parent = SubscribeOn<Ob>
: ObservableType, O
SubscribeOn.swift:11
class SubscribeOnSink<Ob: ObservableType, O: ObserverType where Ob.E == O.E> : Sink<O>, ObserverType {
SubscribeOn.swift:12
    typealias Element = O.E
SubscribeOn.swift:17
    init(parent: Parent, observer: O) {
: ObserverType where Ob.E == O.E> : Sink<O>, ObserverType { 0012 typealias Element
SubscribeOn.swift:22
    func on(event: Event<Element>) {
= O.E 0013 typealias Parent
SubscribeOn.swift:15
    let parent: Parent
SubscribeOn.swift:17
    init(parent: Parent, observer: O) {
= SubscribeOn<Ob> 0014 0015 let parent
SubscribeOn.swift:18
        self.parent = parent
SubscribeOn.swift:36
        cancelSchedule.disposable = parent.scheduler.schedule(()) { (_) -> Disposable in
SubscribeOn.swift:37
            let subscription = self.parent.source.subscribe(self)
SubscribeOn.swift:38
            disposeEverything.disposable = ScheduledDisposable(scheduler: self.parent.scheduler, disposable: subscription)
: Parent 0016 0017 init
SubscribeOn.swift:56
        let sink = SubscribeOnSink(parent: self, observer: observer)
(parent: Parent, observer: O) { 0018 self.parent = parent 0019 super.init(observer: observer) 0020 } 0021 0022 func on(event: Event<Element>) { 0023 forwardOn(event) 0024 0025 if event.isStopEvent { 0026 self.dispose() 0027 } 0028 } 0029 0030 func run
SubscribeOn.swift:57
        sink.disposable = sink.run()
() -> Disposable { 0031 let disposeEverything = SerialDisposable() 0032 let cancelSchedule = SingleAssignmentDisposable() 0033 0034 disposeEverything.disposable = cancelSchedule 0035 0036 cancelSchedule.disposable = parent.scheduler.schedule(()) { (_) -> Disposable in 0037 let subscription = self.parent.source.subscribe(self) 0038 disposeEverything.disposable = ScheduledDisposable(scheduler: self.parent.scheduler, disposable: subscription) 0039 return NopDisposable.instance 0040 } 0041 0042 return disposeEverything 0043 } 0044 } 0045 0046 class SubscribeOn
Observable+Concurrency.swift:60
        return SubscribeOn(source: self, scheduler: scheduler)
SubscribeOn.swift:13
    typealias Parent = SubscribeOn<Ob>
<Ob
SubscribeOn.swift:46
class SubscribeOn<Ob: ObservableType> : Producer<Ob.E> {
SubscribeOn.swift:47
    let source: Ob
SubscribeOn.swift:50
    init(source: Ob, scheduler: ImmediateSchedulerType) {
SubscribeOn.swift:55
    override func run<O : ObserverType where O.E == Ob.E>(observer: O) -> Disposable {
: ObservableType> : Producer<Ob.E> { 0047 let source
SubscribeOn.swift:37
            let subscription = self.parent.source.subscribe(self)
SubscribeOn.swift:51
        self.source = source
: Ob 0048 let scheduler
SubscribeOn.swift:36
        cancelSchedule.disposable = parent.scheduler.schedule(()) { (_) -> Disposable in
SubscribeOn.swift:38
            disposeEverything.disposable = ScheduledDisposable(scheduler: self.parent.scheduler, disposable: subscription)
SubscribeOn.swift:52
        self.scheduler = scheduler
: ImmediateSchedulerType 0049 0050 init
Observable+Concurrency.swift:60
        return SubscribeOn(source: self, scheduler: scheduler)
(source: Ob, scheduler: ImmediateSchedulerType) { 0051 self.source = source 0052 self.scheduler = scheduler 0053 } 0054 0055 override func run<O : ObserverType where O.E == Ob.E>(observer: O) -> Disposable { 0056 let sink = SubscribeOnSink(parent: self, observer: observer) 0057 sink.disposable = sink.run() 0058 return sink 0059 } 0060 }