private IEnumerable <MergedLogLineIndex> CreateIndices(IReadOnlyLogEntries entries, byte logFileIndex)
        {
            // DO NOT CALL EXTERNAL / VIRTUAL METHODS OF ANY KIND HERE

            if (entries == null)
            {
                return(Enumerable.Empty <MergedLogLineIndex>());
            }

            var indices = new List <MergedLogLineIndex>();

            foreach (var entry in entries)
            {
                var index      = entry.GetValue(LogFileColumns.Index);
                var entryIndex = entry.GetValue(LogFileColumns.LogEntryIndex);
                var timestamp  = entry.GetValue(LogFileColumns.Timestamp);

                if (index.IsValid &&
                    entryIndex
                    .IsValid &&                        //< Invalid values are possible if the file has been invalidated in between it sending us a change and us having retrieved the corresponding data
                    timestamp != null)                 //< Not every line has a timestamp
                {
                    indices.Add(new MergedLogLineIndex(index.Value,
                                                       -1, //< We don't know the LogEntryIndex until insertion, hence we use a place-holder value here
                                                       entryIndex.Value,
                                                       logFileIndex,
                                                       timestamp.Value));
                }
            }

            return(indices);
        }
        protected override ILogFile CreateFromContent(IReadOnlyLogEntries content)
        {
            var source = new InMemoryLogFile(content);
            var proxy  = new LogFileProxy(_scheduler, TimeSpan.Zero, source);

            return(proxy);
        }
Exemple #3
0
        protected override ILogFile CreateFromContent(IReadOnlyLogEntries content)
        {
            var source  = new InMemoryLogFile(content);
            var logFile = new MultiLineLogFile(_taskScheduler, source, TimeSpan.Zero);

            _taskScheduler.RunOnce();
            return(logFile);
        }
Exemple #4
0
        protected override ILogFile CreateFromContent(IReadOnlyLogEntries content)
        {
            var source = new InMemoryLogFile(content);
            var merged = new MergedLogFile(_taskScheduler, TimeSpan.Zero, source);

            _taskScheduler.RunOnce();
            return(merged);
        }
Exemple #5
0
        protected override ILogFile CreateFromContent(IReadOnlyLogEntries content)
        {
            var source   = new InMemoryLogFile(content);
            var filter   = new NoFilter();
            var filtered = new FilteredLogFile(_taskScheduler, TimeSpan.Zero, source, filter, null);

            _taskScheduler.RunOnce();
            return(filtered);
        }
Exemple #6
0
        protected override ILogFile CreateFromContent(IReadOnlyLogEntries content)
        {
            var fname = Path.GetTempFileName();

            using (var stream = File.OpenWrite(fname))
                using (var writer = new StreamWriter(stream))
                {
                    foreach (var logEntry in content)
                    {
                        writer.Write(logEntry.ToString());
                        writer.WriteLine();
                    }
                }

            var logFile = new TextLogFile(_scheduler, fname);

            _scheduler.RunOnce();
            return(logFile);
        }
 /// <summary>
 ///     Initializes this object.
 /// </summary>
 /// <param name="content"></param>
 public InMemoryLogFile(IReadOnlyLogEntries content)
     : this(content.Columns)
 {
     AddRange(content);
 }
Exemple #8
0
        protected override ILogFile CreateFromContent(IReadOnlyLogEntries content)
        {
            var logFile = new InMemoryLogFile(content);

            return(logFile);
        }
        protected override ILogFile CreateFromContent(IReadOnlyLogEntries content)
        {
            var source = new InMemoryLogFile(content);

            return(new NoThrowLogFile(source, ""));
        }
 /// <summary>
 ///     Creates a new log file with the given content.
 /// </summary>
 /// <param name="content"></param>
 /// <returns></returns>
 protected abstract ILogFile CreateFromContent(IReadOnlyLogEntries content);
Exemple #11
0
 public ReadOnlyLogEntriesEnumerator(IReadOnlyLogEntries logEntries)
 {
     _logEntries = logEntries;
     Reset();
 }
Exemple #12
0
 public MergedLogFileSection(ILogFile logFile, LogFileSection section, IReadOnlyLogEntries entries)
 {
     LogFile = logFile;
     Section = section;
     Entries = entries;
 }
Exemple #13
0
 public MergedLogFileSection(ILogFile logFile, LogFileSection section)
 {
     LogFile = logFile;
     Section = section;
     Entries = null;
 }