Пример #1
0
        /// <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(); });
        }
Пример #2
0
 /// <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);
 }
Пример #3
0
        /// <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);
        }