0001 // 0002 // Using.swift 0003 // Rx 0004 // 0005 // Created by Yury Korolev on 10/15/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 class UsingSink<SourceType
Using.swift:74 let sink = UsingSink(parent: self, observer: observer), ResourceType
Using.swift:13 typealias Parent = Using<SourceType, ResourceType>: Disposable, O
Using.swift:13 typealias Parent = Using<SourceType, ResourceType>: ObserverType where O.E == SourceType> : Sink<O>, ObserverType { 0012 0013 typealias Parent
Using.swift:11 class UsingSink<SourceType, ResourceType: Disposable, O: ObserverType where O.E == SourceType> : Sink<O>, ObserverType {Using.swift:14 typealias E = O.EUsing.swift:18 init(parent: Parent, observer: O) {= Using<SourceType, ResourceType> 0014 typealias E
Using.swift:16 private let _parent: ParentUsing.swift:18 init(parent: Parent, observer: O) {= O.E 0015 0016 private let _parent
Using.swift:43 func on(event: Event<E>) {: Parent 0017 0018 init
Using.swift:19 _parent = parentUsing.swift:27 let resource = try _parent._resourceFactory()Using.swift:29 let source = try _parent._observableFactory(resource)(parent: Parent, observer: O) { 0019 _parent = parent 0020 super.init(observer: observer) 0021 } 0022 0023 func run
Using.swift:74 let sink = UsingSink(parent: self, observer: observer)() -> Disposable { 0024 var disposable = NopDisposable.instance 0025 0026 do { 0027 let resource = try _parent._resourceFactory() 0028 disposable = resource 0029 let source = try _parent._observableFactory(resource) 0030 0031 return StableCompositeDisposable.create( 0032 source.subscribe(self), 0033 disposable 0034 ) 0035 } catch let error { 0036 return StableCompositeDisposable.create( 0037 Observable.error(error).subscribe(self), 0038 disposable 0039 ) 0040 } 0041 } 0042 0043 func on(event: Event<E>) { 0044 switch event { 0045 case let .Next(value): 0046 forwardOn(.Next(value)) 0047 case let .Error(error): 0048 forwardOn(.Error(error)) 0049 dispose() 0050 case .Completed: 0051 forwardOn(.Completed) 0052 dispose() 0053 } 0054 } 0055 } 0056 0057 class Using
Using.swift:75 sink.disposable = sink.run()<SourceType
Observable+Creation.swift:172 return Using(resourceFactory: resourceFactory, observableFactory: observableFactory)Using.swift:13 typealias Parent = Using<SourceType, ResourceType>, ResourceType
Using.swift:57 class Using<SourceType, ResourceType: Disposable>: Producer<SourceType> {Using.swift:59 typealias E = SourceTypeUsing.swift:62 typealias ObservableFactory = ResourceType throws -> Observable<SourceType>: Disposable>: Producer<SourceType> { 0058 0059 typealias E
Using.swift:61 typealias ResourceFactory = () throws -> ResourceTypeUsing.swift:62 typealias ObservableFactory = ResourceType throws -> Observable<SourceType>= SourceType 0060 0061 typealias ResourceFactory
Using.swift:73 override func run<O : ObserverType where O.E == E>(observer: O) -> Disposable {= () throws -> ResourceType 0062 typealias ObservableFactory
Using.swift:64 private let _resourceFactory: ResourceFactoryUsing.swift:68 init(resourceFactory: ResourceFactory, observableFactory: ObservableFactory) {= ResourceType throws -> Observable<SourceType> 0063 0064 private let _resourceFactory
Using.swift:65 private let _observableFactory: ObservableFactoryUsing.swift:68 init(resourceFactory: ResourceFactory, observableFactory: ObservableFactory) {: ResourceFactory 0065 private let _observableFactory
Using.swift:27 let resource = try _parent._resourceFactory()Using.swift:69 _resourceFactory = resourceFactory: ObservableFactory 0066 0067 0068 init
Using.swift:29 let source = try _parent._observableFactory(resource)Using.swift:70 _observableFactory = observableFactory(resourceFactory: ResourceFactory, observableFactory: ObservableFactory) { 0069 _resourceFactory = resourceFactory 0070 _observableFactory = observableFactory 0071 } 0072 0073 override func run<O : ObserverType where O.E == E>(observer: O) -> Disposable { 0074 let sink = UsingSink(parent: self, observer: observer) 0075 sink.disposable = sink.run() 0076 return sink 0077 } 0078 }
Observable+Creation.swift:172 return Using(resourceFactory: resourceFactory, observableFactory: observableFactory)