public void Scan(IDataReader dataReader, IProgressReporter progressReporter) { ProgressReporterSummer progressReporterSummer = new ProgressReporterSummer(progressReporter); IProgressReporter containerProgressReporter = progressReporterSummer.AddProgressReporter(ContainerDetectors.Count()); _codecProgressReporter = progressReporterSummer.AddProgressReporter(CodecDetectors.Count()); LastDataBlock = null; try { using (_dataReaderPool) { _containerDataScanner.Scan(dataReader, containerProgressReporter); } } finally { LastDataBlock = null; } }
/// <summary> /// Creates a new <see cref="PartialProgressReporter"/> that reports /// to the given <paramref name="progressReporterSummer"/> /// </summary> /// <param name="progressReporterSummer">The summer to report to</param> internal PartialProgressReporter(ProgressReporterSummer progressReporterSummer) { _progressReporterSummer = progressReporterSummer; _currentPercentProgress = -1; }