0001 // 0002 // Skip.swift 0003 // RxSwift 0004 // 0005 // Created by Krunoslav Zaher on 6/25/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 // count version 0012 0013 class SkipCountSink<ElementType
Skip.swift:58 let sink = SkipCountSink(parent: self, observer: observer), O
Skip.swift:14 typealias Parent = SkipCount<ElementType>Skip.swift:15 typealias Element = ElementType: ObserverType where O.E == ElementType> : Sink<O>, ObserverType { 0014 typealias Parent
Skip.swift:13 class SkipCountSink<ElementType, O: ObserverType where O.E == ElementType> : Sink<O>, ObserverType {Skip.swift:21 init(parent: Parent, observer: O) {= SkipCount<ElementType> 0015 typealias Element
Skip.swift:17 let parent: ParentSkip.swift:21 init(parent: Parent, observer: O) {= ElementType 0016 0017 let parent
Skip.swift:27 func on(event: Event<Element>) {: Parent 0018 0019 var remaining
Skip.swift:22 self.parent = parent: Int 0020 0021 init
Skip.swift:23 self.remaining = parent.countSkip.swift:31 if remaining <= 0 {Skip.swift:35 remaining -= 1(parent: Parent, observer: O) { 0022 self.parent = parent 0023 self.remaining = parent.count 0024 super.init(observer: observer) 0025 } 0026 0027 func on(event: Event<Element>) { 0028 switch event { 0029 case .Next(let value): 0030 0031 if remaining <= 0 { 0032 forwardOn(.Next(value)) 0033 } 0034 else { 0035 remaining -= 1 0036 } 0037 case .Error: 0038 forwardOn(event) 0039 self.dispose() 0040 case .Completed: 0041 forwardOn(event) 0042 self.dispose() 0043 } 0044 } 0045 0046 } 0047 0048 class SkipCount
Skip.swift:58 let sink = SkipCountSink(parent: self, observer: observer)<Element
Observable+StandardSequenceOperators.swift:126 return SkipCount(source: asObservable(), count: count)Skip.swift:14 typealias Parent = SkipCount<ElementType>>: Producer<Element> { 0049 let source
Skip.swift:48 class SkipCount<Element>: Producer<Element> {Skip.swift:49 let source: Observable<Element>Skip.swift:52 init(source: Observable<Element>, count: Int) {Skip.swift:57 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable {: Observable<Element> 0050 let count
Skip.swift:53 self.source = sourceSkip.swift:59 sink.disposable = source.subscribe(sink): Int 0051 0052 init
Skip.swift:23 self.remaining = parent.countSkip.swift:54 self.count = count(source: Observable<Element>, count: Int) { 0053 self.source = source 0054 self.count = count 0055 } 0056 0057 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable { 0058 let sink = SkipCountSink(parent: self, observer: observer) 0059 sink.disposable = source.subscribe(sink) 0060 0061 return sink 0062 } 0063 } 0064 0065 // time version 0066 0067 class SkipTimeSink
Observable+StandardSequenceOperators.swift:126 return SkipCount(source: asObservable(), count: count)<ElementType
Skip.swift:124 let sink = SkipTimeSink(parent: self, observer: observer), O
Skip.swift:68 typealias Parent = SkipTime<ElementType>Skip.swift:69 typealias Element = ElementType: ObserverType where O.E == ElementType> : Sink<O>, ObserverType { 0068 typealias Parent
Skip.swift:67 class SkipTimeSink<ElementType, O: ObserverType where O.E == ElementType> : Sink<O>, ObserverType {Skip.swift:76 init(parent: Parent, observer: O) {= SkipTime<ElementType> 0069 typealias Element
Skip.swift:71 let parent: ParentSkip.swift:76 init(parent: Parent, observer: O) {= ElementType 0070 0071 let parent
Skip.swift:81 func on(event: Event<Element>) {: Parent 0072 0073 // state 0074 var open
Skip.swift:77 self.parent = parentSkip.swift:101 let disposeTimer = parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) {Skip.swift:101 let disposeTimer = parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) {Skip.swift:106 let disposeSubscription = parent.source.subscribe(self)= false 0075 0076 init
Skip.swift:84 if open {Skip.swift:97 open = true(parent: Parent, observer: O) { 0077 self.parent = parent 0078 super.init(observer: observer) 0079 } 0080 0081 func on(event: Event<Element>) { 0082 switch event { 0083 case .Next(let value): 0084 if open { 0085 forwardOn(.Next(value)) 0086 } 0087 case .Error: 0088 forwardOn(event) 0089 self.dispose() 0090 case .Completed: 0091 forwardOn(event) 0092 self.dispose() 0093 } 0094 } 0095 0096 func tick
Skip.swift:124 let sink = SkipTimeSink(parent: self, observer: observer)() { 0097 open = true 0098 } 0099 0100 func run
Skip.swift:102 self.tick()() -> Disposable { 0101 let disposeTimer = parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) { 0102 self.tick() 0103 return NopDisposable.instance 0104 } 0105 0106 let disposeSubscription = parent.source.subscribe(self) 0107 0108 return BinaryDisposable(disposeTimer, disposeSubscription) 0109 } 0110 } 0111 0112 class SkipTime
Skip.swift:125 sink.disposable = sink.run()<Element
Observable+Time.swift:152 return SkipTime(source: self.asObservable(), duration: duration, scheduler: scheduler)Skip.swift:68 typealias Parent = SkipTime<ElementType>>: Producer<Element> { 0113 let source
Skip.swift:112 class SkipTime<Element>: Producer<Element> {Skip.swift:113 let source: Observable<Element>Skip.swift:117 init(source: Observable<Element>, duration: RxTimeInterval, scheduler: SchedulerType) {Skip.swift:123 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable {: Observable<Element> 0114 let duration
Skip.swift:106 let disposeSubscription = parent.source.subscribe(self)Skip.swift:118 self.source = source: RxTimeInterval 0115 let scheduler
Skip.swift:101 let disposeTimer = parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) {Skip.swift:120 self.duration = duration: SchedulerType 0116 0117 init
Skip.swift:101 let disposeTimer = parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) {Skip.swift:119 self.scheduler = scheduler(source: Observable<Element>, duration: RxTimeInterval, scheduler: SchedulerType) { 0118 self.source = source 0119 self.scheduler = scheduler 0120 self.duration = duration 0121 } 0122 0123 override func run<O : ObserverType where O.E == Element>(observer: O) -> Disposable { 0124 let sink = SkipTimeSink(parent: self, observer: observer) 0125 sink.disposable = sink.run() 0126 return sink 0127 } 0128 }
Observable+Time.swift:152 return SkipTime(source: self.asObservable(), duration: duration, scheduler: scheduler)