0001    //
0002    //  SkipUntil.swift
0003    //  Rx
0004    //
0005    //  Created by Yury Korolev on 10/3/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    class SkipUntilSinkOther
SkipUntil.swift:101
        let otherObserver = SkipUntilSinkOther(parent: self)
<ElementType
SkipUntil.swift:15
    typealias Parent = SkipUntilSink<ElementType, Other, O>
, Other
SkipUntil.swift:15
    typealias Parent = SkipUntilSink<ElementType, Other, O>
SkipUntil.swift:16
    typealias E = Other
, O
SkipUntil.swift:15
    typealias Parent = SkipUntilSink<ElementType, Other, O>
: ObserverType where O.E == ElementType> 0012 : ObserverType 0013 , LockOwnerType 0014 , SynchronizedOnType { 0015 typealias Parent
SkipUntil.swift:18
    private let _parent: Parent
SkipUntil.swift:26
    init(parent: Parent) {
= SkipUntilSink<ElementType, Other, O> 0016 typealias E
SkipUntil.swift:33
    func on(event: Event<E>) {
SkipUntil.swift:37
    func _synchronized_on(event: Event<E>) {
= Other 0017 0018 private let _parent
SkipUntil.swift:21
        return _parent._lock
SkipUntil.swift:27
        _parent = parent
SkipUntil.swift:40
            _parent._forwardElements = true
SkipUntil.swift:43
            _parent.forwardOn(.Error(e))
SkipUntil.swift:44
            _parent.dispose()
: Parent 0019 0020 var _lock: NSRecursiveLock { 0021 return _parent._lock 0022 } 0023 0024 let _subscription
SkipUntil.swift:41
            _subscription.dispose()
SkipUntil.swift:46
            _subscription.dispose()
SkipUntil.swift:104
        otherObserver._subscription.disposable = otherSubscription
SkipUntil.swift:106
        return StableCompositeDisposable.create(_sourceSubscription, otherObserver._subscription)
= SingleAssignmentDisposable() 0025 0026 init
SkipUntil.swift:101
        let otherObserver = SkipUntilSinkOther(parent: self)
(parent: Parent) { 0027 _parent = parent 0028 #if TRACE_RESOURCES 0029 AtomicIncrement(&resourceCount) 0030 #endif 0031 } 0032 0033 func on(event: Event<E>) { 0034 synchronizedOn(event) 0035 } 0036 0037 func _synchronized_on(event: Event<E>) { 0038 switch event { 0039 case .Next: 0040 _parent._forwardElements = true 0041 _subscription.dispose() 0042 case .Error(let e): 0043 _parent.forwardOn(.Error(e)) 0044 _parent.dispose() 0045 case .Completed: 0046 _subscription.dispose() 0047 } 0048 } 0049 0050 #if TRACE_RESOURCES 0051 deinit { 0052 AtomicDecrement(&resourceCount) 0053 } 0054 #endif 0055 0056 } 0057 0058 0059 class SkipUntilSink
SkipUntil.swift:15
    typealias Parent = SkipUntilSink<ElementType, Other, O>
SkipUntil.swift:121
        let sink = SkipUntilSink(parent: self, observer: observer)
<ElementType
SkipUntil.swift:64
    typealias E = ElementType
, Other
SkipUntil.swift:65
    typealias Parent = SkipUntil<E, Other>
, O
SkipUntil.swift:60
    : Sink<O>
SkipUntil.swift:73
    init(parent: Parent, observer: O) {
: ObserverType where O.E == ElementType> 0060 : Sink<O> 0061 , ObserverType 0062 , LockOwnerType 0063 , SynchronizedOnType { 0064 typealias E
SkipUntil.swift:65
    typealias Parent = SkipUntil<E, Other>
SkipUntil.swift:78
    func on(event: Event<E>) {
SkipUntil.swift:82
    func _synchronized_on(event: Event<E>) {
= ElementType 0065 typealias Parent
SkipUntil.swift:68
    private let _parent: Parent
SkipUntil.swift:73
    init(parent: Parent, observer: O) {
= SkipUntil<E, Other> 0066 0067 let _lock
SkipUntil.swift:21
        return _parent._lock
= NSRecursiveLock() 0068 private let _parent
SkipUntil.swift:74
        _parent = parent
SkipUntil.swift:100
        let sourceSubscription = _parent._source.subscribe(self)
SkipUntil.swift:102
        let otherSubscription = _parent._other.subscribe(otherObserver)
: Parent 0069 private var _forwardElements
SkipUntil.swift:40
            _parent._forwardElements = true
SkipUntil.swift:85
            if _forwardElements {
SkipUntil.swift:92
            if _forwardElements {
= false 0070 0071 private let _sourceSubscription
SkipUntil.swift:95
            _sourceSubscription.dispose()
SkipUntil.swift:103
        _sourceSubscription.disposable = sourceSubscription
SkipUntil.swift:106
        return StableCompositeDisposable.create(_sourceSubscription, otherObserver._subscription)
= SingleAssignmentDisposable() 0072 0073 init
SkipUntil.swift:121
        let sink = SkipUntilSink(parent: self, observer: observer)
(parent: Parent, observer: O) { 0074 _parent = parent 0075 super.init(observer: observer) 0076 } 0077 0078 func on(event: Event<E>) { 0079 synchronizedOn(event) 0080 } 0081 0082 func _synchronized_on(event: Event<E>) { 0083 switch event { 0084 case .Next: 0085 if _forwardElements { 0086 forwardOn(event) 0087 } 0088 case .Error: 0089 forwardOn(event) 0090 dispose() 0091 case .Completed: 0092 if _forwardElements { 0093 forwardOn(event) 0094 } 0095 _sourceSubscription.dispose() 0096 } 0097 } 0098 0099 func run
SkipUntil.swift:122
        sink.disposable = sink.run()
() -> Disposable { 0100 let sourceSubscription = _parent._source.subscribe(self) 0101 let otherObserver = SkipUntilSinkOther(parent: self) 0102 let otherSubscription = _parent._other.subscribe(otherObserver) 0103 _sourceSubscription.disposable = sourceSubscription 0104 otherObserver._subscription.disposable = otherSubscription 0105 0106 return StableCompositeDisposable.create(_sourceSubscription, otherObserver._subscription) 0107 } 0108 } 0109 0110 class SkipUntil
Observable+Multiple.swift:260
        return SkipUntil(source: asObservable(), other: other.asObservable())
SkipUntil.swift:65
    typealias Parent = SkipUntil<E, Other>
<Element
SkipUntil.swift:110
class SkipUntil<Element, Other>: Producer<Element> {
SkipUntil.swift:112
    private let _source: Observable<Element>
SkipUntil.swift:115
    init(source: Observable<Element>, other: Observable<Other>) {
SkipUntil.swift:120
    override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable {
, Other
SkipUntil.swift:113
    private let _other: Observable<Other>
SkipUntil.swift:115
    init(source: Observable<Element>, other: Observable<Other>) {
>: Producer<Element> { 0111 0112 private let _source
SkipUntil.swift:100
        let sourceSubscription = _parent._source.subscribe(self)
SkipUntil.swift:116
        _source = source
: Observable<Element> 0113 private let _other
SkipUntil.swift:102
        let otherSubscription = _parent._other.subscribe(otherObserver)
SkipUntil.swift:117
        _other = other
: Observable<Other> 0114 0115 init
Observable+Multiple.swift:260
        return SkipUntil(source: asObservable(), other: other.asObservable())
(source: Observable<Element>, other: Observable<Other>) { 0116 _source = source 0117 _other = other 0118 } 0119 0120 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable { 0121 let sink = SkipUntilSink(parent: self, observer: observer) 0122 sink.disposable = sink.run() 0123 return sink 0124 } 0125 } 0126