diff options
Diffstat (limited to 'Rx.NET/System.Reactive.Linq/Reactive/TimeInterval.cs')
-rw-r--r-- | Rx.NET/System.Reactive.Linq/Reactive/TimeInterval.cs | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/Rx.NET/System.Reactive.Linq/Reactive/TimeInterval.cs b/Rx.NET/System.Reactive.Linq/Reactive/TimeInterval.cs deleted file mode 100644 index 5dff853..0000000 --- a/Rx.NET/System.Reactive.Linq/Reactive/TimeInterval.cs +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.Globalization; - -namespace System.Reactive -{ - /// <summary> - /// Represents a value associated with time interval information. - /// The time interval can represent the time it took to produce the value, the interval relative to a previous value, the value's delivery time relative to a base, etc. - /// </summary> - /// <typeparam name="T">The type of the value being annotated with time interval information.</typeparam> -#if !NO_SERIALIZABLE - [Serializable] -#endif - public struct TimeInterval<T> : IEquatable<TimeInterval<T>> - { - private readonly TimeSpan _interval; - private readonly T _value; - - /// <summary> - /// Constructs a time interval value. - /// </summary> - /// <param name="value">The value to be annotated with a time interval.</param> - /// <param name="interval">Time interval associated with the value.</param> - public TimeInterval(T value, TimeSpan interval) - { - _interval = interval; - _value = value; - } - - /// <summary> - /// Gets the value. - /// </summary> - public T Value - { - get { return _value; } - } - - /// <summary> - /// Gets the interval. - /// </summary> - public TimeSpan Interval - { - get { return _interval; } - } - - /// <summary> - /// Determines whether the current TimeInterval<T> value has the same Value and Interval as a specified TimeInterval<T> value. - /// </summary> - /// <param name="other">An object to compare to the current TimeInterval<T> value.</param> - /// <returns>true if both TimeInterval<T> values have the same Value and Interval; otherwise, false.</returns> - public bool Equals(TimeInterval<T> other) - { - return other.Interval.Equals(Interval) && EqualityComparer<T>.Default.Equals(Value, other.Value); - } - - /// <summary> - /// Determines whether the two specified TimeInterval<T> values have the same Value and Interval. - /// </summary> - /// <param name="first">The first TimeInterval<T> value to compare.</param> - /// <param name="second">The second TimeInterval<T> value to compare.</param> - /// <returns>true if the first TimeInterval<T> value has the same Value and Interval as the second TimeInterval<T> value; otherwise, false.</returns> - public static bool operator ==(TimeInterval<T> first, TimeInterval<T> second) - { - return first.Equals(second); - } - - /// <summary> - /// Determines whether the two specified TimeInterval<T> values don't have the same Value and Interval. - /// </summary> - /// <param name="first">The first TimeInterval<T> value to compare.</param> - /// <param name="second">The second TimeInterval<T> value to compare.</param> - /// <returns>true if the first TimeInterval<T> value has a different Value or Interval as the second TimeInterval<T> value; otherwise, false.</returns> - public static bool operator !=(TimeInterval<T> first, TimeInterval<T> second) - { - return !first.Equals(second); - } - - /// <summary> - /// Determines whether the specified System.Object is equal to the current TimeInterval<T>. - /// </summary> - /// <param name="obj">The System.Object to compare with the current TimeInterval<T>.</param> - /// <returns>true if the specified System.Object is equal to the current TimeInterval<T>; otherwise, false.</returns> - public override bool Equals(object obj) - { - if (!(obj is TimeInterval<T>)) - return false; - - var other = (TimeInterval<T>)obj; - return this.Equals(other); - } - - /// <summary> - /// Returns the hash code for the current TimeInterval<T> value. - /// </summary> - /// <returns>A hash code for the current TimeInterval<T> value.</returns> - public override int GetHashCode() - { - var valueHashCode = Value == null ? 1963 : Value.GetHashCode(); - - return Interval.GetHashCode() ^ valueHashCode; - } - - /// <summary> - /// Returns a string representation of the current TimeInterval<T> value. - /// </summary> - /// <returns>String representation of the current TimeInterval<T> value.</returns> - public override string ToString() - { - return String.Format(CultureInfo.CurrentCulture, "{0}@{1}", Value, Interval); - } - } -} |