private ReconstructableImmutableStore(TData data, ReconstructableImmutableStore <TData> rest) { this.Data = data; this.Last = this; this.rest = rest; this.Count = rest.Count + 1; }
private Tuple <ReconstructableImmutableStore <DateTimeOffset>, bool> Refresh(ReconstructableImmutableStore <DateTimeOffset> previous) { var rebuilt = previous.RebuildUntil(time => time >= DateTimeOffset.UtcNow); return(rebuilt.Count >= this.maxOperationCount ? Tuple.Create(rebuilt, true) : Tuple.Create(rebuilt.Put(DateTimeOffset.UtcNow.Add(this.interval)), false)); }
private ReconstructableImmutableStore(TData data, ReconstructableImmutableStore <TData> last, ReconstructableImmutableStore <TData> rest) : this(data, rest) { this.Last = last; }
public SlidingWindowStrategy(int maxOperationCount, TimeSpan interval) { this.maxOperationCount = maxOperationCount; this.interval = interval; this.timeHistory = ReconstructableImmutableStore <DateTimeOffset> .Empty; }