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