0001    //
0002    //  AnonymousObservable.swift
0003    //  Rx
0004    //
0005    //  Created by Krunoslav Zaher on 2/8/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    class AnonymousObservableSink
AnonymousObservable.swift:52
        let sink = AnonymousObservableSink(observer: observer)
<O
AnonymousObservable.swift:11
class AnonymousObservableSink<O: ObserverType> : Sink<O>, ObserverType {
AnonymousObservable.swift:12
    typealias E = O.E
AnonymousObservable.swift:18
    override init(observer: O) {
: ObserverType> : Sink<O>, ObserverType { 0012 typealias E
AnonymousObservable.swift:13
    typealias Parent = AnonymousObservable<E>
AnonymousObservable.swift:22
    func on(event: Event<E>) {
= O.E 0013 typealias Parent
AnonymousObservable.swift:37
    func run(parent: Parent) -> Disposable {
= AnonymousObservable<E> 0014 0015 // state 0016 private var _isStopped
AnonymousObservable.swift:25
            if _isStopped == 1 {
AnonymousObservable.swift:30
            if AtomicCompareAndSwap(0, 1, &_isStopped) {
: AtomicInt = 0 0017 0018 override init
AnonymousObservable.swift:52
        let sink = AnonymousObservableSink(observer: observer)
(observer: O) { 0019 super.init(observer: observer) 0020 } 0021 0022 func on(event: Event<E>) { 0023 switch event { 0024 case .Next: 0025 if _isStopped == 1 { 0026 return 0027 } 0028 forwardOn(event) 0029 case .Error, .Completed: 0030 if AtomicCompareAndSwap(0, 1, &_isStopped) { 0031 forwardOn(event) 0032 dispose() 0033 } 0034 } 0035 } 0036 0037 func run
AnonymousObservable.swift:53
        sink.disposable = sink.run(self)
(parent: Parent) -> Disposable { 0038 return parent._subscribeHandler(AnyObserver(self)) 0039 } 0040 } 0041 0042 class AnonymousObservable
AnonymousObservable.swift:13
    typealias Parent = AnonymousObservable<E>
Observable+Creation.swift:24
        return AnonymousObservable(subscribe)
<Element
AnonymousObservable.swift:42
class AnonymousObservable<Element> : Producer<Element> {
AnonymousObservable.swift:43
    typealias SubscribeHandler = (AnyObserver<Element>) -> Disposable
AnonymousObservable.swift:51
    override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable {
> : Producer<Element> { 0043 typealias SubscribeHandler
AnonymousObservable.swift:45
    let _subscribeHandler: SubscribeHandler
AnonymousObservable.swift:47
    init(_ subscribeHandler: SubscribeHandler) {
= (AnyObserver<Element>) -> Disposable 0044 0045 let _subscribeHandler
AnonymousObservable.swift:38
        return parent._subscribeHandler(AnyObserver(self))
AnonymousObservable.swift:48
        _subscribeHandler = subscribeHandler
: SubscribeHandler 0046 0047 init
Observable+Creation.swift:24
        return AnonymousObservable(subscribe)
(_ subscribeHandler: SubscribeHandler) { 0048 _subscribeHandler = subscribeHandler 0049 } 0050 0051 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable { 0052 let sink = AnonymousObservableSink(observer: observer) 0053 sink.disposable = sink.run(self) 0054 return sink 0055 } 0056 } 0057