IEnumerable <byte[]> Transform(IIterator iterator, Func <bool> stop) { string reason = StaticExtensionEventInterfaces.RealtimeLogAnalysis; using (TimeProviderBackup backup = new TimeProviderBackup(consumer, iterator as ITimeMeasureProvider, null, reason, 0)) { IDataRuntime runtime = backup.Runtime; IStep st = null; IMeasurement time = (iterator as ITimeMeasureProvider).TimeMeasurement; if (runtime is IStep) { st = runtime as IStep; st.Step = 0; } iterator.Reset(); double t = (double)time.Parameter(); double last = t; Action <double, double, long> act = runtime.Step(null, (double timer) => { }, reason, null); int i = 0; while (iterator.Next()) //!!! Unifinished? { t = (double)time.Parameter(); act(last, t, i); ++i; DateTime dt = new DateTime(); dt += TimeSpan.FromSeconds(t); object tuple = new Tuple <DateTime, Dictionary <string, object> >(dt, measurementsWrite.WriteParameters()); yield return(objectToBytes(tuple)); if (stop()) { break; } } } }
public static IEnumerable <object> PerformIteratorEnumerable(this IDataConsumer consumer, IIterator iterator, ITimeMeasureProvider timeProvider, string reason, Func <bool> stop) { try { using (TimeProviderBackup backup = new TimeProviderBackup(consumer, timeProvider, null, reason, 0)) { IDataRuntime runtime = backup.Runtime; IStep st = null; IMeasurement time = timeProvider.TimeMeasurement; if (runtime is IStep) { st = runtime as IStep; st.Step = 0; } iterator.Reset(); double t = (double)time.Parameter(); double last = t; Action <double, double, long> act = runtime.Step(null, (double timer) => { }, reason, null); int i = 0; IEnumerable <object> enu = runtime.AllComponents; while (iterator.Next()) { } } } catch (Exception ex) { ex.ShowError(10); } yield return(null); }