22 using System.Collections.Generic;
32 private readonly TimeSpan _dataResolution;
33 private readonly TimeSpan _underlyingTimeout;
53 bool isExtendedMarketHours, DateTime subscriptionEndTime,
Resolution dataResolution, DateTimeZone dataTimeZone,
bool dailyStrictEndTimeEnabled,
55 : base(enumerator, exchange, fillForwardResolution, isExtendedMarketHours, subscriptionEndTime, dataResolution.ToTimeSpan(), dataTimeZone,
56 dailyStrictEndTimeEnabled, dataType)
58 _timeProvider = timeProvider;
59 _dataResolution = dataResolution.ToTimeSpan();
73 if (base.RequiresFillForwardData(fillForwardResolution, previous, next, out fillForward))
75 var underlyingTimeout = TimeSpan.Zero;
76 if (fillForwardResolution >= _dataResolution)
80 underlyingTimeout = _underlyingTimeout;
83 var nextEndTimeUtc = (fillForward.EndTime + underlyingTimeout).ConvertToUtc(
Exchange.TimeZone);
84 if (next !=
null || nextEndTimeUtc <= _timeProvider.GetUtcNow())
103 return TimeSpan.Zero;
105 return TimeSpan.FromSeconds(0.9);
107 return TimeSpan.FromMinutes(0.9);
109 return TimeSpan.FromMinutes(10);
111 return TimeSpan.FromMinutes(10);
113 throw new ArgumentOutOfRangeException(nameof(resolution), resolution,
null);