public void FireParametersChanged(DateTimeOffset time, MultiClampInterop.MulticlampData data)
        {
            var clock = new FakeClock(time);
            var args  = new MultiClampParametersChangedArgs(clock, data);

            ParametersChanged(this, args);
        }
Beispiel #2
0
        private static void PurgeDeviceParameters(
            IDictionary <DateTimeOffset, MultiClampParametersChangedArgs> parameters,
            MultiClampParametersChangedArgs deviceParams,
            TimeSpan stalenessInterval)
        {
            if (deviceParams == null)
            {
                return;
            }

            var marker     = ((MultiClampParametersChangedArgs)deviceParams).TimeStamp.ToUniversalTime();
            var cacheLimit = marker.Subtract(stalenessInterval);

            var staleParamsTimes = parameters.Keys.Where(t => t < cacheLimit).OrderBy(t => t);

            if (staleParamsTimes.Count() > 1) //always keep one past staleness interval
            {
                foreach (var t in staleParamsTimes.TakeWhile(t => t < staleParamsTimes.Last()))
                {
                    parameters.Remove(t);
                }
            }
        }
        private static void PurgeDeviceParameters(
            IDictionary<DateTimeOffset, MultiClampParametersChangedArgs> parameters,
            MultiClampParametersChangedArgs deviceParams,
            TimeSpan stalenessInterval)
        {
            if (deviceParams == null)
                return;

            var marker = ((MultiClampParametersChangedArgs)deviceParams).TimeStamp.ToUniversalTime();
            var cacheLimit = marker.Subtract(stalenessInterval);

            var staleParamsTimes = parameters.Keys.Where(t => t < cacheLimit).OrderBy(t => t);
            if (staleParamsTimes.Count() > 1) //always keep one past staleness interval
            {
                foreach (var t in staleParamsTimes.TakeWhile(t => t < staleParamsTimes.Last()))
                {
                    parameters.Remove(t);
                }
            }
        }
 public void FireParametersChanged(DateTimeOffset time, MultiClampInterop.MulticlampData data)
 {
     var clock = new FakeClock(time);
     var args = new MultiClampParametersChangedArgs(clock, data);
     ParametersChanged(this, args);
 }