Processor.cs
1 using Logging; 2 using OverwatchTranscript; 3 4 namespace TranscriptAnalysis 5 { 6 public class Processor 7 { 8 private readonly ILog log; 9 private readonly ITranscriptReader reader; 10 11 public Processor(ILog log, ITranscriptReader reader) 12 { 13 this.log = new LogPrefixer(log, "(Processor) "); 14 this.reader = reader; 15 } 16 17 public void RunAll() 18 { 19 log.Log("Events: " + reader.Header.NumberOfEvents); 20 log.Log("Moments: " + reader.Header.NumberOfMoments); 21 22 log.Log("Processing..."); 23 var count = 0; 24 var tenth = reader.Header.NumberOfMoments / 10; 25 var miss = 0; 26 while (true) 27 { 28 if (!reader.Next()) 29 { 30 miss++; 31 if (miss > 20) 32 { 33 log.Log("Done"); 34 return; 35 } 36 Thread.Sleep(1); 37 } 38 else 39 { 40 miss = 0; 41 count++; 42 if (count % tenth == 0) 43 { 44 log.Log($"{count} / {reader.Header.NumberOfMoments}..."); 45 } 46 } 47 } 48 } 49 } 50 }