0001 // 0002 // Multicast.swift 0003 // Rx 0004 // 0005 // Created by Krunoslav Zaher on 2/27/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 class MulticastSink<S
Multicast.swift:67 let sink = MulticastSink(parent: self, observer: observer): SubjectType, O
Multicast.swift:14 typealias MutlicastType = Multicast<S, O.E>: ObserverType>: Sink<O>, ObserverType { 0012 typealias Element
Multicast.swift:11 class MulticastSink<S: SubjectType, O: ObserverType>: Sink<O>, ObserverType {Multicast.swift:12 typealias Element = O.EMulticast.swift:14 typealias MutlicastType = Multicast<S, O.E>Multicast.swift:18 init(parent: MutlicastType, observer: O) {= O.E 0013 typealias ResultType
Multicast.swift:13 typealias ResultType = Element= Element 0014 typealias MutlicastType
Multicast.swift:42 func on(event: Event<ResultType>) {= Multicast<S, O.E> 0015 0016 private let _parent
Multicast.swift:16 private let _parent: MutlicastTypeMulticast.swift:18 init(parent: MutlicastType, observer: O) {: MutlicastType 0017 0018 init
Multicast.swift:19 _parent = parentMulticast.swift:25 let subject = try _parent._subjectSelector()Multicast.swift:26 let connectable = ConnectableObservableAdapter(source: _parent._source, subject: subject)Multicast.swift:28 let observable = try _parent._selector(connectable)(parent: MutlicastType, observer: O) { 0019 _parent = parent 0020 super.init(observer: observer) 0021 } 0022 0023 func run
Multicast.swift:67 let sink = MulticastSink(parent: self, observer: observer)() -> Disposable { 0024 do { 0025 let subject = try _parent._subjectSelector() 0026 let connectable = ConnectableObservableAdapter(source: _parent._source, subject: subject) 0027 0028 let observable = try _parent._selector(connectable) 0029 0030 let subscription = observable.subscribe(self) 0031 let connection = connectable.connect() 0032 0033 return BinaryDisposable(subscription, connection) 0034 } 0035 catch let e { 0036 forwardOn(.Error(e)) 0037 dispose() 0038 return NopDisposable.instance 0039 } 0040 } 0041 0042 func on(event: Event<ResultType>) { 0043 forwardOn(event) 0044 switch event { 0045 case .Next: break 0046 case .Error, .Completed: 0047 dispose() 0048 } 0049 } 0050 } 0051 0052 class Multicast
Multicast.swift:68 sink.disposable = sink.run()<S
Multicast.swift:14 typealias MutlicastType = Multicast<S, O.E>Observable+Binding.swift:49 return Multicast(: SubjectType, R
Multicast.swift:53 typealias SubjectSelectorType = () throws -> SMulticast.swift:54 typealias SelectorType = (Observable<S.E>) throws -> Observable<R>Multicast.swift:56 private let _source: Observable<S.SubjectObserverType.E>Multicast.swift:60 init(source: Observable<S.SubjectObserverType.E>, subjectSelector: SubjectSelectorType, selector: SelectorType) {>: Producer<R> { 0053 typealias SubjectSelectorType
Multicast.swift:52 class Multicast<S: SubjectType, R>: Producer<R> {Multicast.swift:54 typealias SelectorType = (Observable<S.E>) throws -> Observable<R>Multicast.swift:66 override func run<O: ObserverType where O.E == R>(observer: O) -> Disposable {= () throws -> S 0054 typealias SelectorType
Multicast.swift:57 private let _subjectSelector: SubjectSelectorTypeMulticast.swift:60 init(source: Observable<S.SubjectObserverType.E>, subjectSelector: SubjectSelectorType, selector: SelectorType) {= (Observable<S.E>) throws -> Observable<R> 0055 0056 private let _source
Multicast.swift:58 private let _selector: SelectorTypeMulticast.swift:60 init(source: Observable<S.SubjectObserverType.E>, subjectSelector: SubjectSelectorType, selector: SelectorType) {: Observable<S.SubjectObserverType.E> 0057 private let _subjectSelector
Multicast.swift:26 let connectable = ConnectableObservableAdapter(source: _parent._source, subject: subject)Multicast.swift:61 _source = source: SubjectSelectorType 0058 private let _selector
Multicast.swift:25 let subject = try _parent._subjectSelector()Multicast.swift:62 _subjectSelector = subjectSelector: SelectorType 0059 0060 init
Multicast.swift:28 let observable = try _parent._selector(connectable)Multicast.swift:63 _selector = selector(source: Observable<S.SubjectObserverType.E>, subjectSelector: SubjectSelectorType, selector: SelectorType) { 0061 _source = source 0062 _subjectSelector = subjectSelector 0063 _selector = selector 0064 } 0065 0066 override func run<O: ObserverType where O.E == R>(observer: O) -> Disposable { 0067 let sink = MulticastSink(parent: self, observer: observer) 0068 sink.disposable = sink.run() 0069 return sink 0070 } 0071 }
Observable+Binding.swift:49 return Multicast(