Beispiel #1
0
        private IDataSource AddDataSource(DataSource settings)
        {
            lock (_syncRoot)
            {
                IDataSource dataSource;
                if (!string.IsNullOrEmpty(settings.LogFileFolderPath))
                {
                    dataSource = new FolderDataSource(_taskScheduler, _logFileFactory, _filesystem, settings);
                }
                else if (!string.IsNullOrEmpty(settings.File))
                {
                    dataSource = new SingleDataSource(_logFileFactory, _taskScheduler, settings, _maximumWaitTime);
                }
                else
                {
                    if (settings.DisplayName == null)
                    {
                        settings.DisplayName = "Merged Data Source";
                    }

                    dataSource = new MergedDataSource(_taskScheduler, settings, _maximumWaitTime);
                }

                _dataSources.Add(dataSource);
                _dataSourceIds.Add(dataSource.Id);
                _bookmarks.AddDataSource(dataSource);
                return(dataSource);
            }
        }
Beispiel #2
0
        public FolderDataSource(ITaskScheduler taskScheduler,
                                ILogFileFactory logFileFactory,
                                IFilesystem filesystem,
                                DataSource settings,
                                TimeSpan maximumWaitTime)
        {
            _taskScheduler          = taskScheduler;
            _logFileFactory         = logFileFactory;
            _filesystem             = filesystem;
            _settings               = settings;
            _syncRoot               = new object();
            _dataSources            = new Dictionary <IFileInfo, SingleDataSource>();
            _mergedDataSource       = new MergedDataSource(taskScheduler, settings, maximumWaitTime);
            _unfilteredLogFileProxy = new LogFileProxy(taskScheduler, maximumWaitTime);
            _filteredLogFileProxy   = new LogFileProxy(taskScheduler, maximumWaitTime);

            DoChange();
        }