0001    //
0002    //  HistoricalSchedulerTimeConverter.swift
0003    //  Rx
0004    //
0005    //  Created by Krunoslav Zaher on 12/27/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    /**
0012     Converts historial virtual time into real time. 
0013     
0014     Since historical virtual time is also measured in `NSDate`, this converter is identity function.
0015     */
0016    public struct HistoricalSchedulerTimeConverter
HistoricalScheduler.swift:14
public class HistoricalScheduler : VirtualTimeScheduler<HistoricalSchedulerTimeConverter> {
HistoricalScheduler.swift:22
        super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter())
: VirtualTimeConverterType { 0017 /** 0018 Virtual time unit used that represents ticks of virtual clock. 0019 */ 0020 public typealias VirtualTimeUnit
HistoricalSchedulerTimeConverter.swift:31
    public func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime {
HistoricalSchedulerTimeConverter.swift:39
    public func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit {
HistoricalSchedulerTimeConverter.swift:66
    public func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit {
HistoricalSchedulerTimeConverter.swift:66
    public func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit {
HistoricalSchedulerTimeConverter.swift:73
    public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison {
HistoricalSchedulerTimeConverter.swift:73
    public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison {
= RxTime 0021 0022 /** 0023 Virtual time unit used to represent differences of virtual times. 0024 */ 0025 public typealias VirtualTimeIntervalUnit
HistoricalSchedulerTimeConverter.swift:47
    public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval {
HistoricalSchedulerTimeConverter.swift:55
    public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit {
HistoricalSchedulerTimeConverter.swift:66
    public func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit {
= RxTimeInterval 0026 0027 /** 0028 Returns identical value of argument passed because historical virtual time is equal to real time, just 0029 decoupled from local machine clock. 0030 */ 0031 public func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime { 0032 return virtualTime 0033 } 0034 0035 /** 0036 Returns identical value of argument passed because historical virtual time is equal to real time, just 0037 decoupled from local machine clock. 0038 */ 0039 public func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit { 0040 return time 0041 } 0042 0043 /** 0044 Returns identical value of argument passed because historical virtual time is equal to real time, just 0045 decoupled from local machine clock. 0046 */ 0047 public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { 0048 return virtualTimeInterval 0049 } 0050 0051 /** 0052 Returns identical value of argument passed because historical virtual time is equal to real time, just 0053 decoupled from local machine clock. 0054 */ 0055 public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { 0056 return timeInterval 0057 } 0058 0059 /** 0060 Offsets `NSDate` by time interval. 0061 0062 - parameter time: Time. 0063 - parameter timeInterval: Time interval offset. 0064 - returns: Time offsetted by time interval. 0065 */ 0066 public func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { 0067 return time.dateByAddingTimeInterval(offset) 0068 } 0069 0070 /** 0071 Compares two `NSDate`s. 0072 */ 0073 public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { 0074 switch lhs.compare(rhs) { 0075 case .OrderedAscending: 0076 return .LessThan 0077 case .OrderedSame: 0078 return .Equal 0079 case .OrderedDescending: 0080 return .GreaterThan 0081 } 0082 } 0083 }