/// <summary> /// Initializes this object. /// </summary> /// <param name="source"></param> /// <param name="parser"></param> public GenericTextLogSource(ILogSource source, ILogEntryParser parser) { _source = source ?? throw new ArgumentNullException(nameof(source)); _parser = parser; _parsedColumns = _parser.Columns.ToList(); _allColumns = _source.Columns.Concat(_parsedColumns).Distinct().ToList(); _listeners = new ProxyLogListenerCollection(source, this); _nothingParsed = new ReadOnlyLogEntry(_parsedColumns); }
public PageBufferedLogSource(ITaskScheduler taskScheduler, ILogSource source, TimeSpan maximumWaitTime, IReadOnlyList <IColumnDescriptor> nonCachedColumns, int pageSize = DefaultPageSize, int maxNumPages = DefaultMaxPageCount) { _syncRoot = new object(); _taskScheduler = taskScheduler; _source = source; _maxNumPages = maxNumPages; _listeners = new ProxyLogListenerCollection(source, this); _cachedColumns = source.Columns.Except(nonCachedColumns).ToList(); _buffer = new PagedLogBuffer(pageSize, maxNumPages, _cachedColumns); _fetchQueue = new ConcurrentQueue <LogSourceSection>(); _source.AddListener(this, maximumWaitTime, pageSize); _fetchBuffer = new LogBufferArray(pageSize, _cachedColumns); _fetchTask = _taskScheduler.StartPeriodic(FetchPagesFromSource, maximumWaitTime); }
public LogSourceColumnAdorner(ILogSource source, IReadOnlyList <IColumnDescriptor> adornedColumns) { _source = source ?? throw new ArgumentNullException(nameof(source)); _columns = source.Columns.Concat(adornedColumns).Distinct().ToList(); _listeners = new ProxyLogListenerCollection(source, this); }