private void FixSignalBuffers() { SignalBuffer signalBuffer; foreach (MeasurementKey key in SignalBuffers.Keys) { if (!m_retentionTimes.ContainsKey(key)) { SignalBuffers.TryRemove(key, out signalBuffer); } } foreach (MeasurementKey key in m_retentionTimes.Keys) { SignalBuffers.GetOrAdd(key, k => new SignalBuffer(k)); } }
/// <summary> /// Maps the given collection of measurements to the algorithm's /// input type and calls the user-defined algorithm. /// </summary> /// <param name="timestamp">The timestamp of the frame of measurements being processed.</param> /// <param name="measurements">The collection of measurement received from the server.</param> void IMapper.Map(Ticks timestamp, IDictionary <MeasurementKey, IMeasurement> measurements) { SignalBuffer signalBuffer; CurrentFrameTime = timestamp; m_currentFrame = measurements; Map(measurements); foreach (KeyValuePair <MeasurementKey, TimeSpan> kvp in m_retentionTimes) { Ticks retentionTime = ((DateTime)timestamp) - kvp.Value; if (SignalBuffers.TryGetValue(kvp.Key, out signalBuffer)) { signalBuffer.RetentionTime = retentionTime; } } }