public AttributeScanner( IScannerConfig config, IScanPreprocessor preprocessor, IHashProvider <string> hashProvider) : base(config, preprocessor, hashProvider) { }
private IScanner CreateScanner(IConfigItem config) { IScanPreprocessor preprocessor = CreateScanPreprocessor(); IHashProvider <string> hashProvider = CreateHashProvider(); string scannerNamespace = typeof(IScanner).Namespace; Type[] scannerTypes = config.Scanners .Select(scannerName => $"{scannerNamespace}.{scannerName}Scanner") .Select(scannerType => Type.GetType(scannerType)) .ToArray(); IScanner[] scanners = scannerTypes .Select(scannerType => (IScanner)Activator.CreateInstance(scannerType, config, preprocessor, hashProvider)) .ToArray(); if (scanners.Length > 1) { CompositeScanner compositeScanner = new CompositeScanner(); foreach (IScanner scanner in scanners) { compositeScanner.AddScanner(scanner); } return(compositeScanner); } if (scanners.Length == 1) { return(scanners.First()); } throw new ArgumentOutOfRangeException(nameof(config.Scanners)); }
public StringFormatScanner( IScannerConfig config, IScanPreprocessor preprocessor, IHashProvider <string> hashProvider) : base(config, preprocessor, hashProvider) { }
public SingleLineScanner( IScannerConfig config, IScanPreprocessor preprocessor, IHashProvider <string> hashProvider) { _config = config; _preprocessor = preprocessor; _hashProvider = hashProvider; _results = new HashSet <ScanResult>(); }
public MultiLineScanner( IScannerConfig config, IScanPreprocessor preprocessor, IHashProvider <string> hashProvider) { _config = config; _preprocessor = preprocessor; _hashProvider = hashProvider; _singleLineScanner = new SingleLineScanner(config, preprocessor, hashProvider); _lines = new LimitedStack <Line>(BufferSize); _results = new HashSet <ScanResult>(); }