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<ElementType
SkipUntil.swift:101 let otherObserver = SkipUntilSinkOther(parent: self), Other
SkipUntil.swift:15 typealias Parent = SkipUntilSink<ElementType, Other, O>, O
SkipUntil.swift:15 typealias Parent = SkipUntilSink<ElementType, Other, O>SkipUntil.swift:16 typealias E = Other: ObserverType where O.E == ElementType> 0012 : ObserverType 0013 , LockOwnerType 0014 , SynchronizedOnType { 0015 typealias Parent
SkipUntil.swift:15 typealias Parent = SkipUntilSink<ElementType, Other, O>= SkipUntilSink<ElementType, Other, O> 0016 typealias E
SkipUntil.swift:18 private let _parent: ParentSkipUntil.swift:26 init(parent: Parent) {= Other 0017 0018 private let _parent
SkipUntil.swift:33 func on(event: Event<E>) {SkipUntil.swift:37 func _synchronized_on(event: Event<E>) {: Parent 0019 0020 var _lock: NSRecursiveLock { 0021 return _parent._lock 0022 } 0023 0024 let _subscription
SkipUntil.swift:21 return _parent._lockSkipUntil.swift:27 _parent = parentSkipUntil.swift:40 _parent._forwardElements = trueSkipUntil.swift:43 _parent.forwardOn(.Error(e))SkipUntil.swift:44 _parent.dispose()= SingleAssignmentDisposable() 0025 0026 init
SkipUntil.swift:41 _subscription.dispose()SkipUntil.swift:46 _subscription.dispose()SkipUntil.swift:104 otherObserver._subscription.disposable = otherSubscriptionSkipUntil.swift:106 return StableCompositeDisposable.create(_sourceSubscription, otherObserver._subscription)(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:101 let otherObserver = SkipUntilSinkOther(parent: self)<ElementType
SkipUntil.swift:15 typealias Parent = SkipUntilSink<ElementType, Other, O>SkipUntil.swift:121 let sink = SkipUntilSink(parent: self, observer: observer), Other
SkipUntil.swift:64 typealias E = ElementType, O
SkipUntil.swift:65 typealias Parent = SkipUntil<E, Other>: ObserverType where O.E == ElementType> 0060 : Sink<O> 0061 , ObserverType 0062 , LockOwnerType 0063 , SynchronizedOnType { 0064 typealias E
SkipUntil.swift:60 : Sink<O>SkipUntil.swift:73 init(parent: Parent, observer: O) {= ElementType 0065 typealias Parent
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>) {= SkipUntil<E, Other> 0066 0067 let _lock
SkipUntil.swift:68 private let _parent: ParentSkipUntil.swift:73 init(parent: Parent, observer: O) {= NSRecursiveLock() 0068 private let _parent
SkipUntil.swift:21 return _parent._lock: Parent 0069 private var _forwardElements
SkipUntil.swift:74 _parent = parentSkipUntil.swift:100 let sourceSubscription = _parent._source.subscribe(self)SkipUntil.swift:102 let otherSubscription = _parent._other.subscribe(otherObserver)= false 0070 0071 private let _sourceSubscription
SkipUntil.swift:40 _parent._forwardElements = trueSkipUntil.swift:85 if _forwardElements {SkipUntil.swift:92 if _forwardElements {= SingleAssignmentDisposable() 0072 0073 init
SkipUntil.swift:95 _sourceSubscription.dispose()SkipUntil.swift:103 _sourceSubscription.disposable = sourceSubscriptionSkipUntil.swift:106 return StableCompositeDisposable.create(_sourceSubscription, otherObserver._subscription)(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:121 let sink = SkipUntilSink(parent: self, observer: observer)() -> 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
SkipUntil.swift:122 sink.disposable = sink.run()<Element
Observable+Multiple.swift:260 return SkipUntil(source: asObservable(), other: other.asObservable())SkipUntil.swift:65 typealias Parent = SkipUntil<E, Other>, Other
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 {>: Producer<Element> { 0111 0112 private let _source
SkipUntil.swift:113 private let _other: Observable<Other>SkipUntil.swift:115 init(source: Observable<Element>, other: Observable<Other>) {: Observable<Element> 0113 private let _other
SkipUntil.swift:100 let sourceSubscription = _parent._source.subscribe(self)SkipUntil.swift:116 _source = source: Observable<Other> 0114 0115 init
SkipUntil.swift:102 let otherSubscription = _parent._other.subscribe(otherObserver)SkipUntil.swift:117 _other = other(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
Observable+Multiple.swift:260 return SkipUntil(source: asObservable(), other: other.asObservable())