/// <summary> /// Realtime analysis enumerable /// </summary> /// <param name="dataConsumer">Data consumer</param> /// <param name="readers">Input</param> /// <param name="stop">Stop function</param> /// <param name="reason">Reason</param> /// <param name="timeType">Time type</param> /// <param name="isAbsoluteTime">The absolute time "sign"</param> /// <returns>The enumerable</returns> public static IEnumerable <object> RealtimeAnalysisEnumerableDirectory(this IDataConsumer dataConsumer, ILogReaderCollection readers, Func <object, bool> stop, string reason, TimeType timeType, bool isAbsoluteTime) { IComponentCollection cc = dataConsumer.CreateCollection(reason); cc.ForEach((ICalculationReason re) => { re.CalculationReason = reason; }); cc.ForEach((IRealTimeStartStop ss) => { ss.Start(); }); IEnumerable <ILogReader> r = readers.Readers; foreach (ILogReader reader in r) { cc.ForEach((IRealTimeStartStop ss) => { ss.Start(); }); IEnumerable <object> en = dataConsumer.RealtimeAnalysisEnumerable(reader, stop, reason, timeType, isAbsoluteTime); object ob = null; foreach (object o in en) { ob = o; } yield return(ob); cc.ForEach((IRealTimeStartStop ss) => { ss.Stop(); }); } cc.ForEach((IRealTimeStartStop ss) => { ss.Stop(); }); }
/// <summary> /// Realtime analysis enumerable /// </summary> /// <param name="dataConsumer">Data consumer</param> /// <param name="input">Input</param> /// <param name="stop">Stop function</param> /// <param name="reason">Reason</param> /// <param name="timeType">Time type</param> /// <param name="isAbsoluteTime">The absolute time "sign"</param> /// <returns>The enumerable</returns> public static IEnumerable <object> RealtimeAnalysisEnumerableDirectory(this IDataConsumer dataConsumer, object input, Func <object, bool> stop, string reason, TimeType timeType, bool isAbsoluteTime) { if (input is ILogReaderCollection) { ILogReaderCollection lr = input as ILogReaderCollection; return(dataConsumer.RealtimeAnalysisEnumerableDirectory(lr, stop, reason, timeType, isAbsoluteTime)); } return(null); }
/// <summary> /// Writes itself /// </summary> public void Write() { WriteTypes(); if (!(item is IBufferDirectory)) { "Select directory please".Show(); return; } directory = item as IBufferDirectory; object log = Log; if (log == null) { "Select log please".Show(); return; } change = GetItem(log); if (change != null) { change.Change += Change; } componentCollection = this.CreateCollection(); componentCollection.ForEach((IInitialize initialize) => { initialize.Initialize(); }); try { Func <bool> stop = () => { return(true); }; if (log is ILogReaderCollection) { ILogReaderCollection c = log as ILogReaderCollection; foreach (ILogReader reader in c.Readers) { Perform(reader); } } else { Perform(log as ILogReader); } StaticExtensionDataPerformerInterfaces.Data.SubmitChanges(); } catch (Exception exception) { exception.ShowError(); } if (change != null) { change.Change -= Change; } change = null; }
/// <summary> /// Gets length of log item /// </summary> /// <param name="item">The intem</param> /// <returns>The length</returns> public static int GetLength(this ILogItem item) { if (item is ILogData) { return((item as ILogData).Length); } object r = item.LogFromItem(); if (r is ILogReaderCollection) { int n = 0; ILogReaderCollection collection = r as ILogReaderCollection; foreach (ILogReader reader in collection.Readers) { n += reader.FullLength; } return(n); } return(0); }